使用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>
标签。
pander
为此提供了一个相当用户友好的解决方案:http://rapporter.github.io/pander/#highlighting-cells 当然,您可以使用 JS/CSS 调整强调/斜体的外观,因此上述提到的限制仅意味着您在表格中只能有两种额外的样式。如果有帮助,请让我知道(通过在评论中提及我,例如 @daroczig 以获得电子邮件通知),我可以提供可重现的示例。 - daroczigknitr::kable
生成的HTML输出,以查找<span>
标签并删除它们,并编辑父级<td>
标签。但如果不必经历这种复杂性,我希望能够使用现有的解决方案(如果有的话)。 - Daddy the Runner