我使用xtable(HTML)在R markdown中成功生成了一个表。
现在我想根据单元格中的值对第3列进行颜色格式化。 说最高的红色值,最低的绿色,并保持不同的色调。 单元格中的值是动态生成的。像excel这样的事情很容易使用条件格式化选项。我们可以使用css在R中执行此操作!任何帮助和建议欢迎..谢谢:)
答案 0 :(得分:0)
您可以在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可以选择正确的表。