Не знаю, если вы все еще застряли на этом, но я столкнулся с этим вопросом, когда имел дело с той же проблемой, и решил опубликовать мой обходной путь.Ключ должен передать функции цветовой палитры (в данном случае spec_color) числовую версию значений, при этом используя значения символов с символом «%» в качестве входных данных для cell_spec, чтобы «%» был включен в тег, которыйcell_spec возвращает
---
title: "R Notebook"
output:
html_document: default
pdf_document: default
---
```{r setup, include = F}
library(tidyverse)
library(knitr)
library(kableExtra)
options(knitr.table.format = "html")
```
```{r}
df = tibble(
x = c(1, 2, 3, 4, 5),
percents = c("12.7%", "14.0%", "19.2%", "20.4%", "13.2%")
)
```
```{r}
df = df %>%
mutate(percents = cell_spec(percents, format = "html",
#I first remove the "%" character,
#then coerce the column to a numerical value so that
#the color palette function can handle it
color = spec_color(as.numeric(str_sub(percents, end = -2L))))
)
df %>% kable(format = "html", escape = F) %>% kable_styling()
```