我使用 xtable (HTML) 在 R markdown 中成功生成了一个表格。
现在我想根据单元格中的值对第三列进行颜色格式化。 红色表示最高值,绿色表示最低值,其余为不同的色调。 单元格中的值是动态生成的。使用条件格式选项在 Excel 中很容易发生类似的情况。我们可以在 R 中使用 css 来做到这一点吗?欢迎任何帮助和建议..谢谢:)
最佳答案
您可以在 RMarkdown 脚本中使用 jQuery,如下所示:
---
title: "Title"
author: "Yourname"
date: "June 16, 2016"
output: html_document
---
<script>
$(document).ready(function() {
$td = $('#myTable tr:not(:has(th)) :nth-child(5)');
var entries = new Array();
$td.each(function() {
entries.push(parseFloat($(this).html()));
})
var minimum = Math.min.apply(Math, entries);
var maximum = Math.max.apply(Math, entries);
$("#myTable tr :nth-child(5):contains('" + minimum + "')").css('background-color', 'green');
$("#myTable tr :nth-child(5):contains('" + maximum + "')").css('background-color', 'red');
});
</script>
```{r, echo=F, results='asis'}
library(xtable, quietly = T)
myTable <- xtable(head(mtcars))
print(myTable, type="html", html.table.attributes='border=1 id=myTable')
```
JavaScript 读出第 5 列的所有值(:nth-child(5)
,包括行名称)并检查最小值和最大值。然后,它将该列的单元格与这些值进行匹配并应用 CSS 属性。
请注意,我为该表指定了一个 ID (#myTable
)。因此,如果您有多个表,JavaScript 可以选择正确的一个。
关于javascript - RMarkdown : Color single cells in an HTML table based on conditions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32851701/