【发布时间】:2016-10-29 05:25:14
【问题描述】:
我有一个包含一个 ID 列和多个数字列的 data.frame,数字列的数量可能不同。在这些数字列中,我想将列上方的所有值都着色为绿色,列下方的所有值都表示红色。下面的代码给出了我想要的结果,但它不是具有或多或少数字列的数据框的通用代码。
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(data[,2]), c("red","green"))) %>%
formatStyle(colnames(data)[3], backgroundColor = styleInterval(mean(data[,3]), c("red","green"))) %>%
formatStyle(colnames(data)[4], backgroundColor = styleInterval(mean(data[,4]), c("red","green"))) %>%
formatStyle(colnames(data)[5], backgroundColor = styleInterval(mean(data[,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")))
这可能吗?所以是的,怎么做?
【问题讨论】: