Ответ 1
пакет ReporteRs
может помочь. Посмотрите здесь FlexTable.
Затем вы можете получить соответствующий код HTML с функцией as.html
и повторно использовать его в коде knitr
.
Можно ли применить атрибут класса к отдельным ячейкам таблицы с помощью knitr
? Я успешно применил атрибут класса к заголовку раздела, который содержит таблицу knitr::kable
сгенерировал таблицу и использовал ее для форматирования всей таблицы. Тем не менее, я хотел бы иметь возможность условно форматировать отдельные ячейки, которые требовали бы применения класса к конкретным элементам <td>
.
Мое текущее обходное решение - это программно обернуть содержимое ячейки в пару тегов <span>
и передать это на knitr::kable
. Этот подход позволяет мне форматировать текст внутри ячейки по сравнению со всей ячейкой (например, задавать цвет фона ячейки). Вот пример того, что я сейчас использую:
## Read in the report, process the data, send to kable
rpt <- generate.report()
mutate(rpt, Col2 = ifelse(abs(Col2) > Threshold,
paste('<span class="warning">',
sprintf("%.2f", Col2), '</span>'),
sprintf("%.2f", Col2))) %>%
knitr::kable(format="markdown", align = c("l", rep("r", 4)),
col.names = gsub("\\.", "<br>", colnames(.)))
Это приводит к следующему примеру вывода HTML:
<td align="right"><span class="warning"> -1.74 </span></td>
Я хотел бы иметь способ заставить knitr:: kable генерировать что-то вроде этого:
<td align="right" class="warning"> -1.74 </td>
Таким образом, я мог бы применять стили CSS для тега <td>
по типу <span>
.
пакет ReporteRs
может помочь. Посмотрите здесь FlexTable.
Затем вы можете получить соответствующий код HTML с функцией as.html
и повторно использовать его в коде knitr
.
Хорошо, это может быть не ответ, но он может указывать на вас в правильном направлении. У меня была аналогичная проблема с форматированием отдельных ячеек в учебнике для подготовки pdf. В конце я использовал xtable и написал функцию, которая полагалась на логическую матрицу, чтобы решить, будет ли отформатирована ячейка в выходной таблице.
Я не мог заставить его работать гладко, поэтому мне пришлось публиковать его здесь и с помощью ivyleavedtoadflax Я смог развить достаточно простая в использовании функция для форматирования определенных ячеек в xxtable в knitr.
Как я уже сказал, это не точное решение вашей проблемы, но оно может указывать на вас в правильном направлении.