DT中的条件格式样式

时间:2017-06-15 15:14:04

标签: r dt htmlwidgets

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

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

数据:

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

我的DT表:

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

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

任何想法如何?

1 个答案:

答案 0 :(得分:4)

尝试这样的事情:

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指定应使用styleEqual backgroundColor中指定的条件评估哪些列。

请注意在columns与为了在valueColumns对应的顺序(例如" MOBILE_NUMBER"有条件地由&#34着色; mobile_flag&#34)。