我有一个包含一个ID列和多个数值列的数据框,数值列的数量可能不同。在这些数值列中,我想将所有大于列均值的值标记为绿色,并将所有小于列均值的值标记为红色。下面的代码可以实现我想要的结果,但它并不适用于具有更多或更少数值列的通用数据框。
我想用下面的代码替换上面的代码,但是不起作用。当数字列的数量发生变化时,下面的代码也可以工作。
library(DT)
data2 <- cbind(ID = "some ID",iris[,1:4])
datatable(
data2, rownames = FALSE, class = 'cell-border stripe',
options = list(
dom = 't', pageLength = -1, lengthMenu = list(c(-1), c('All'))
)
) %>%
formatStyle(colnames(data)[2], backgroundColor = styleInterval(mean(data2[,2]), c("red","green"))) %>%
formatStyle(colnames(data)[3], backgroundColor = styleInterval(mean(data2[,3]), c("red","green"))) %>%
formatStyle(colnames(data)[4], backgroundColor = styleInterval(mean(data2[,4]), c("red","green"))) %>%
formatStyle(colnames(data)[5], backgroundColor = styleInterval(mean(data2[,5]), c("red","green")))
我想用下面的代码替换上面的代码,但是不起作用。当数字列的数量发生变化时,下面的代码也可以工作。
datatable(
data2, rownames = FALSE, class = 'cell-border stripe',
options = list(
dom = 't', pageLength = -1, lengthMenu = list(c(-1), c('All'))
)
) %>%
formatStyle(colnames(data2)[2:ncol(data2)], backgroundColor = styleInterval(colMeans(data2[,2:ncol(data2)]), c("red","green")))
这可能吗?如果是,怎么做?