Tôi có một data.frame với một cột ID và nhiều cột số, số lượng cột số có thể khác nhau. Trong số các cột số tôi muốn tô màu tất cả các giá trị trên cột có nghĩa là màu xanh lá cây và tất cả các giá trị bên dưới cột có nghĩa là màu đỏ. Đoạn mã dưới đây đưa ra kết quả mong muốn của tôi, nhưng nó không phải là một mã chung cho các khung dữ liệu có nhiều cột số hoặc ít hơn.formatStyle qua nhiều cột DT R
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")))
Tôi muốn thay thế mã ở trên bằng mã bên dưới nhưng điều đó không hiệu quả. Mã bên dưới cũng sẽ hoạt động khi số lượng cột số thay đổi.
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")))
Điều này có thể không? Vì vậy, có, làm thế nào?
Ý tưởng có một tấm thảm rix với các số và ma trận với các màu tương ứng, không hoạt động nếu bạn có cùng giá trị trong các cột khác nhau khi nó ở trong một cột màu đỏ và màu xanh lá cây khác. Sau đó nó sẽ cho màu của cột đầu tiên – Berecht
Ah .. vâng bạn đúng ... nghĩ về nó – Batanichek
Bạn có thể jitter hoặc ngẫu nhiên nó sau khi xác định màu sắc. Chỉ bạn mới cần đảm bảo rằng số ngẫu nhiên được tạo là duy nhất – Berecht