R中DataTable中的条件格式单元格

dim*_*_ps 7 r dt

到目前为止,我有以下代码作为示例:

library(DT)

datatable(iris, options = list(pageLength = 5)) %>%
  formatStyle(
    'Sepal.Width',
    backgroundColor = styleInterval(3, c('gray', 'yellow'))
)
Run Code Online (Sandbox Code Playgroud)

我感兴趣的是仅根据条件突出显示特定的“单元格”。

例如如果 iris[3, 2] > 3.1那么背景颜色应该是黄色。

供参考http://rstudio.github.io/DT/

sessionInfo() DT_0.1

nnn*_*nnn 7

您可以使用DT Helper Functions执行此操作。有一个函数可以为特定间隔 ( styleInterval()) 的单元格设置样式,或者如果单元格值等于 ( styleEqual()) 的值。似乎不styleEqual()支持条件的直接输入,但您可以先计算条件(可能为其创建另一列)然后使用它。

如上面链接的页面所述(在第 2 节“样式表单元格”下),您可以这样做,例如:

datatable(iris) %>% 
  formatStyle('Sepal.Length', fontWeight = styleInterval(5, c('normal', 'bold'))) %>%
  formatStyle(
    'Sepal.Width',
    color = styleInterval(c(3.4, 3.8), c('white', 'blue', 'red')),
    backgroundColor = styleInterval(3.4, c('gray', 'yellow'))
  ) %>%
  formatStyle(
    'Petal.Length',
    background = styleColorBar(iris$Petal.Length, 'steelblue'),
    backgroundSize = '100% 90%',
    backgroundRepeat = 'no-repeat',
    backgroundPosition = 'center'
  ) %>%
  formatStyle(
    'Species',
    transform = 'rotateX(45deg) rotateY(20deg) rotateZ(30deg)',
    backgroundColor = styleEqual(
      unique(iris$Species), c('lightblue', 'lightgreen', 'lightpink')
    )
  )
Run Code Online (Sandbox Code Playgroud)