DT 中的条件格式样式

Conditional formatStyle in DT

我想用 B 列中的值为 A 列中的行着色。

下面的代码基于插图 Link 中的示例,但仅显示两列的条件:mobile_number by mobile_flag。

数据:

head(test[, c("EMBG","mobile_number", "home_number",  "mobile_flag", "home_number_flag")])
          EMBG mobile_number      home_number mobile_flag
1 101001455126   075-201-543      02/2446-275     correct
2 101010455015   55555555555      55555555555   incorrect
3 101014455095             0                0   incorrect
4 101947455134   075/482-356      02/2460-020     correct
5 101952450264  070 22 16 18 ----------------     correct
6 101953450012             0      02/2446-276   incorrect
  home_number_flag
1          correct
2        incorrect
3        incorrect
4          correct
5        incorrect
6          correct

我的DTtable:

> datatable(test) %>% formatStyle(
+   'mobile_number', 'mobile_flag',
+   backgroundColor = styleEqual(c("correct", "incorrect"), c('green', 'red'))) 

但是,我想分别根据 home_number_flag 和 mobile_flag 同时为 mobile_number 和 home_number 着色。

有什么想法吗?

尝试这样的事情:

library(DT)
datatable(test) %>%
    formatStyle(
        columns = c("mobile_number", "home_number"),
        valueColumns = c("mobile_flag", "home_number_flag"),
        backgroundColor = styleEqual(c("correct", "incorrect"), 
                                     c("green", "red"))
    )

columns 指定要有条件地格式化哪些列。 valueColumns 指定应使用 backgroundColorstyleEqual 中指定的条件评估哪些列。

请注意 columns 中的顺序对应于 valueColumns 中的顺序(例如 "mobile_number" 有条件地由 "mobile_flag" 着色)。