RMarkdown文档中的条件格式化表

时间:2014-08-14 18:39:00

标签: r datatables knitr r-markdown

例如,我可能想使用以下规则为单元格着色:

(编辑为非平凡)

  1. 蓝色如果> 4
  2. 如果< = 4且> = 3.5
  3. ,则不填写
  4. 黄色if> = 3且< 3.5
  5. 橙色如果< 3
  6. Create tables with conditional formatting with RMarkdown + knitr 对我没有帮助,因为我不只是想突出满足一套标准的细胞。

    示例rmd:

    ---
    title: "Untitled"
    output: html_document
    ---
    
    ```{r, message = FALSE, results = "asis"}
    library(knitr)
    library(dplyr)
    head(iris) %>% kable
    ```
    

    如果需要的话,我会使用DataTables来解决问题

2 个答案:

答案 0 :(得分:7)

您好,这是一个使用包FlexTable中的函数ReporteRs的解决方案。此函数用于创建Word表,但您可以使用as.html从FlexTable对象获取html代码:

---
title: "Untitled"
output: html_document
---


```{r, results='asis', warning=FALSE, message=FALSE}
library(ReporteRs)
data(iris)
irisFT = FlexTable( iris )

vars <- c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width")
for (i in vars) {
  irisFT[iris[, i] < 3, i] = cellProperties( background.color = "orange" )
  irisFT[iris[, i] >= 3 & iris[, i] < 3.5, i] = cellProperties( background.color = "yellow" )
  irisFT[iris[, i] > 4, i] = cellProperties( background.color = "#81DAF5" )
}

cat(as.html(irisFT))
```

enter image description here

有关更多示例,请访问https://davidgohel.github.io/ReporteRs/articles/FlexTable.html

答案 1 :(得分:0)

knitr包含jQuery DataTables示例的插图。

vignette("datatables", package = "knitr")