Change text color of selected rows and columns of a flextable. A function can be used instead of fixed colors.
When color
is a function, it is possible to color cells based on values
located in other columns, using hidden columns (those not used by
argument colkeys
) is a common use case. The argument source
has to be used to define what are the columns to be used for the color
definition and the argument j
has to be used to define where to apply
the colors and only accept values from colkeys
.
Arguments
- x
a flextable object
- i
rows selection
- j
columns selection
- color
color to use as font color. If a function, function need to return a character vector of colors.
- part
partname of the table (one of 'all', 'body', 'header', 'footer')
- source
if color is a function, source is specifying the dataset column to be used as argument to
color
. This is only useful if j is colored with values contained in other columns.
See also
Other sugar functions for table style:
align()
,
bg()
,
bold()
,
empty_blanks()
,
font()
,
fontsize()
,
highlight()
,
italic()
,
keep_with_next()
,
line_spacing()
,
padding()
,
rotate()
,
tab_settings()
,
valign()
Examples
ft <- flextable(head(mtcars))
ft <- color(ft, color = "orange", part = "header")
ft <- color(ft,
color = "red",
i = ~ qsec < 18 & vs < 1
)
ft
mpg
cyl
disp
hp
drat
wt
qsec
vs
am
gear
carb
21.0
6
160
110
3.90
2.620
16.46
0
1
4
4
21.0
6
160
110
3.90
2.875
17.02
0
1
4
4
22.8
4
108
93
3.85
2.320
18.61
1
1
4
1
21.4
6
258
110
3.08
3.215
19.44
1
0
3
1
18.7
8
360
175
3.15
3.440
17.02
0
0
3
2
18.1
6
225
105
2.76
3.460
20.22
1
0
3
1
if (require("scales")) {
scale <- scales::col_numeric(domain = c(-1, 1), palette = "RdBu")
x <- as.data.frame(cor(iris[-5]))
x <- cbind(
data.frame(
colname = colnames(x),
stringsAsFactors = FALSE
),
x
)
ft_2 <- flextable(x)
ft_2 <- color(ft_2, j = x$colname, color = scale)
ft_2 <- set_formatter_type(ft_2)
ft_2
}
#> Warning: Use `colformat_*()` instead.
colname
Sepal.Length
Sepal.Width
Petal.Length
Petal.Width
Sepal.Length
1.0
-0.1
0.9
0.8
Sepal.Width
-0.1
1.0
-0.4
-0.4
Petal.Length
0.9
-0.4
1.0
1.0
Petal.Width
0.8
-0.4
1.0
1.0