在R reactable包中,如何对滞后值大于实际值的单元格进行着色?

nbysray5  于 2023-05-20  发布在  React
关注(0)|答案(1)|浏览(110)

这是我的代码:

library(tidyverse)
library(reactable)

reactable(
    iris,
    columns = set_names(x = colnames(iris)) %>% 
        map(~ {
            colDef(
                style = function(value) {
                    ds_color <- ifelse(lag(value) < value , "green", "white")
                    list(background = ds_color)
                }
            )
        })
)

我需要的是当行上的值大于滞后值时,为单元格的背景着色。

nnt7mjpx

nnt7mjpx1#

不幸的是,只有单元格值被传递给样式函数,而不是整个向量。因此,使用lag将不起作用。
然而,除了单元格值之外,还可以传递行索引和列名,这可以用来实现您想要的结果,如下所示:

library(tidyverse)
library(reactable)

reactable(
  iris,
  columns = set_names(x = colnames(iris)[-5]) %>% 
    map(~ {
      colDef(
        style = function(value, index, name) {
          ds_color <- if (index > 1 && iris[index - 1, name] < iris[index, name]) {
            "green"
          } else {
            "white"
          }
          list(background = ds_color)
        }
      )
    })
)

相关问题