I need to make a report with a table where a column will have a background and font colors depending on each row value. I have success using formatter or color_tile when they are isolated. But I need to use both at the same time.
Example:
col1 <- c(2.0, 3.3,6.3,1.5)
col2 <- c(4.7, 4.3, 2.5,1.9)
mydata <- data.frame(col1, col2)
customGreen = "#0d6d36"
customGreen0 = "#DeF7E9"
With the code below I can set the font color for column 2:
formattable(mydata,
align =c("l","c","c"),
list(
`col2` = formatter("span",style = x ~ style(color = ifelse(mydata$col2 >=3, "red","black")))
)
)
With the code below I can set the background color for column 2:
formattable(mydata,
align =c("l","c","c"),
list(
`col2` = color_tile(customGreen0, customGreen)
)
)
But I can´t set font color and background color at the same time. Any ideas?
Try to define your own formatter with the formatter
function and combine background color with font color.
formatter
The color_tile effect is defined by display, padding, border-radius and background-color. And color sets the rules for font colors.
custom_format <- formatter(.tag = "span", style = function(x) style(
display = "block",
padding = "0 4px",
`border-radius` = "4px",
`background-color` = csscolor(gradient(as.numeric(x),
customGreen, customGreen0)),
color = ifelse(x >= 3, "red","black")))
use custom function
formattable(mydata,
align =c("l","c","c"),
list(
`col2` = costum_format))