Reputation: 5838
I have a table with numeric data and want to assign individual colors, depending on a certain condition, e.g. negative cells in red and positive in blue.
This works well with kable(escape=FALSE)
:
library("dplyr")
library("knitr")
library("kableExtra")
set.seed(123)
highlight <- function(x) {
x <- ifelse(is.na(x), "", x)
ifelse(x < 0, cell_spec(x, color="red"), cell_spec(x, color="blue"))
}
matrix(sample(-4:4), nrow=3) |>
data.frame() |>
mutate(across(1:3, function(x) highlight(x))) |>
kable(escape=FALSE)
But after adding additional styling with kable_styling
:
matrix(sample(-4:4), nrow=3) |>
data.frame() |>
mutate(across(1:3, function(x) highlight(x))) |>
kable(escape=FALSE) |>
kable_styling(font_size = 12)
... the printed table shows only raw HTML code instead of colors:
With older versions of R, kable_styling
works as expected. I tested it again right now with R version 3.6.3 using RMarkdown and dplyr pipes. However, with recent versions of R (4.3.2 or 4.3.3) and the recent set of packages, it prints only code, regardless if I use RMarkdown or Quarto, native or dplyr pipes, html or latex output.
So I wonder, what has changed between versions and if there is any workaround?
Upvotes: 0
Views: 186