Если вы рендеринга в PDF, вы (или кто-либо еще функции) должны отформатировать таблицу с LaTeX. Хотя есть много полезных пакетов и функций, которые сделают для вас всю работу (knitr::kable
, xtable
, stargazer
), если вам нужен мелкозернистый элемент управления, вам, возможно, потребуется отредактировать LaTeX самостоятельно, по крайней мере частично.
Разумно безболезненно вариант Hmisc::latex
, который создаст таблицу из data.frame, и имеет параметр (среди многих) cellTexCmds
, что позволяет прохождение укладки для отдельных ячеек с помощью матрицы аналогичных размеров на data.frame. Параметр file
равен ''
, поэтому он не сохраняет файл и where = '!htbp'
, поэтому таблица отображается в нужном месте в документе. Чтобы установить цвет фона ячейки, вам понадобятся пакеты xcolor
или colortbl
LaTeX, которые могут быть загружены в исходную линейку YAML.
Чтобы исключить комментарий LaTeX, возьмите вывод, подмножество и печать или просто используйте .Rnw вместо .Rmd.
---
title: "Conditional Formatting"
header-includes:
- \usepackage[table]{xcolor}
output:
pdf_document: default
---
```{r}
df <- data.frame(category = c("A","B","C"),
groupA = c(.2,.3,.5),
groupB= c(.6,.7,.9))
df.format = matrix('', nrow = nrow(df), ncol = ncol(df))
df.format[, -1] <- paste0('cellcolor{',
sapply(df[-1], function(x){
cut(x, breaks = c(0, seq(.2, .8, by = .1), 1),
labels = c('green', 'red', 'blue', 'orange',
'yellow', 'black', 'brown', 'white'))}),
'}')
df.format
```
```{r table, results='asis'}
cat(capture.output(
Hmisc::latex(df, file = '', cellTexCmds = df.format, where = "!htbp")
)[-1])
```
Для визуализации в HTML или PDF? Если первый, проверьте [formattable] (https://renkun.me/formattable/). – alistaire
Я не могу использовать formattable, потому что это PDF – user3022875