我可以使用knitr将CSS样式应用于单个表格单元格吗?

时间:2014-12-30 04:46:05

标签: html css r 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>标记。

2 个答案:

答案 0 :(得分:7)

ReporteRs可能有所帮助。看看FlexTable

然后,您可以使用函数as.html获取相应的HTML代码,并在knitr代码中重复使用。

答案 1 :(得分:0)

好的,这可能不是 的答案,但它可能会指向正确的方向。我有一个类似的问题,格式化knitr中的单个单元格来准备pdf。最后,我使用xtable并编写了一个函数,该函数依赖于逻辑矩阵来决定输出表中的单元格是否会被格式化。

我无法让自己顺利工作,所以我不得不在ivyleavedtoadflax的帮助下发布它,我能够开发一个相当容易使用的功能来应用格式化knitr中xtable中的某些细胞。

Here's the link to my post

正如我所说,它不是解决问题的确切方法,但它可能会指向正确的方向。