【问题标题】:Conditional formatting cell in DataTable in RR中DataTable中的条件格式单元格
【发布时间】:2015-08-24 21:42:00
【问题描述】:

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

library(DT)

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

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

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

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

sessionInfo()DT_0.1

【问题讨论】:

    标签: r dt


    【解决方案1】:

    您可以使用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')
        )
      )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 1970-01-01
      • 2014-09-04
      • 2020-07-01
      • 2020-03-16
      • 1970-01-01
      相关资源
      最近更新 更多