Могу ли я использовать knitr для применения стилей CSS к отдельным ячейкам таблицы?

Можно ли применить атрибут класса к отдельным ячейкам таблицы с помощью 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>.

Ответы

Ответ 1

пакет ReporteRs может помочь. Посмотрите здесь FlexTable.

Затем вы можете получить соответствующий код HTML с функцией as.html и повторно использовать его в коде knitr.

Ответ 2

Хорошо, это может быть не ответ, но он может указывать на вас в правильном направлении. У меня была аналогичная проблема с форматированием отдельных ячеек в учебнике для подготовки pdf. В конце я использовал xtable и написал функцию, которая полагалась на логическую матрицу, чтобы решить, будет ли отформатирована ячейка в выходной таблице.

Я не мог заставить его работать гладко, поэтому мне пришлось публиковать его здесь и с помощью ivyleavedtoadflax Я смог развить достаточно простая в использовании функция для форматирования определенных ячеек в xxtable в knitr.

Здесь ссылка на мое сообщение

Как я уже сказал, это не точное решение вашей проблемы, но оно может указывать на вас в правильном направлении.