Я использую R markdown в сочетании с LaTeX для создания динамических отчетов в формате PDF. Для создания сводных таблиц я использую пакет kableExtra.
Я хочу изменить стиль отдельных ячеек.
Пример: рассмотрим фрейм данных R mtcars[1:10, 1:5]
. Используя это, можно было бы преобразовать в некоторую красивую таблицу:
kable(mtcars[1:10, 1:5], format = "latex", booktabs = T)`
Теперь я хочу изменить стиль определенных ячеек. Скажем, 2-я и 8-я записи миль на галлон должны быть зелеными, 4-я и 5-я записи дисп должны быть оранжевыми и выделенными курсивом, а последние четыре записи тряпка должны быть красными и жирными. И такими же должны быть ячейки, независимо от того, какие записи в ячейках.
Я прекрасно осведомлен о документации и примерах, таких как расцветка для отдельных строк и столбцов. Но документация для cell_spec касается только условной логики в зависимости от значений ячеек, а я бы хотел раскрасить ячейки независимо.
Как вы видели, функция cell_spec
полезна, если вы хотите раскрасить всю строку или столбец. Поскольку kableExtra
не предоставляет функции для прямого редактирования отдельной ячейки, «самый простой» способ сделать это - напрямую вставить команды LaTeX в ячейку. Я использовал этот подход в аналогичном ответе здесь:
---
output: pdf_document
header-includes:
- \usepackage{booktabs}
---
```{r pressure, echo=FALSE}
df <- mtcars[1:10, 1:5]
df[1,5] <- paste0("\\underline{", df[1,5], "}")
df[1,1] <- paste0("\\textcolor{red}{", df[1,1], "}")
df[2,2] <- paste0("\\textcolor{green}{\\textbf{", df[2,2], "}}")
# # Equivalent to:
# library(kableExtra)
# df[1, 5] <- cell_spec(df[1, 5], "latex", underline = T)
# df[1, 1] <- cell_spec(df[1, 1], "latex", color = "red")
# df[2, 2] <- cell_spec(df[2, 2], "latex", color = "green", bold = T)
knitr::kable(df, format = "latex", booktabs = T, escape = F)
```
Вы можете адаптировать это для работы в своем примере. Вы можете проверить доступное форматирование LaTeX здесь: https://www.sharelatex.com/learn/Bold,_italics_and_underlining
@Hao, я предпочитаю этот метод :) не понимал, что так можно
Хао, спасибо за добавление латексного эквивалента. Мне нужно было немного больше гибкости (ячейка частично выделена жирным шрифтом) - надеюсь, это поможет!
как добиться этого в выводе html?
Времени на ответ не хватает, но рекомендую посмотреть документацию: cran.r-project.org/web/packages/kableExtra/vignettes/…
Я добавил несколько примеров
cell_spec
для людей, которые не хотят запоминать слишком много латекса;)