Change text highlight 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 text highlighting 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()
,
color()
,
empty_blanks()
,
font()
,
fontsize()
,
italic()
,
keep_with_next()
,
line_spacing()
,
padding()
,
rotate()
,
tab_settings()
,
valign()
Examples
my_color_fun <- function(x) {
out <- rep("yellow", length(x))
out[x < quantile(x, .75)] <- "pink"
out[x < quantile(x, .50)] <- "wheat"
out[x < quantile(x, .25)] <- "gray90"
out
}
ft <- flextable(head(mtcars, n = 10))
ft <- highlight(ft, j = "disp", i = ~ disp > 200, color = "yellow")
ft <- highlight(ft, j = ~ drat + wt + qsec, color = my_color_fun)
ft
mpg
cyl
disp
hp
drat
wt
qsec
vs
am
gear
carb
21.0
6
160.0
110
3.90
2.620
16.46
0
1
4
4
21.0
6
160.0
110
3.90
2.875
17.02
0
1
4
4
22.8
4
108.0
93
3.85
2.320
18.61
1
1
4
1
21.4
6
258.0
110
3.08
3.215
19.44
1
0
3
1
18.7
8
360.0
175
3.15
3.440
17.02
0
0
3
2
18.1
6
225.0
105
2.76
3.460
20.22
1
0
3
1
14.3
8
360.0
245
3.21
3.570
15.84
0
0
3
4
24.4
4
146.7
62
3.69
3.190
20.00
1
0
4
2
22.8
4
140.8
95
3.92
3.150
22.90
1
0
4
2
19.2
6
167.6
123
3.92
3.440
18.30
1
0
4
4