DT根据单独的数据帧将背景色应用于单元格 [英] DT apply background colour to cell based on separate data frame
本文介绍了DT根据单独的数据帧将背景色应用于单元格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一张想要将背景色应用于单个单元格的表。颜色与显示的数据没有明显的直接关系,并且在单独的数据集中指定。
I have a table to which I would like to apply background colours to individual cells. The colours have no obvious direct relationship with the data presented, and are specified in a separate data set.
我将如何应用在以下位置指定的背景单元格颜色:
How would I apply the background cell colours specified in:
set.seed(123)
colours2apply <- sample(x=c(rgb(1, 0, 0 ), rgb(1, 1, 0 ), rgb(0, 1, 1 )), 25, replace = T) %>%
matrix(nrow=5) %>%
data.frame()
> colours2apply
X1 X2 X3 X4 X5
1 #FF0000 #FF0000 #00FFFF #00FFFF #00FFFF
2 #00FFFF #FFFF00 #FFFF00 #FF0000 #00FFFF
3 #FFFF00 #00FFFF #00FFFF #FF0000 #FFFF00
4 #00FFFF #FFFF00 #FFFF00 #FF0000 #00FFFF
5 #00FFFF #FFFF00 #FF0000 #00FFFF #FFFF00
到数据表,例如:
datatable(iris[1:5, 1:5])
干杯,
Luc
Cheers, Luc
推荐答案
dat <- iris[1:5,1:5]
colours2apply <- sample(x=c(rgb(1, 0, 0 ), rgb(1, 1, 0 ), rgb(0, 1, 1 )), 25, replace = T) %>%
matrix(nrow=5) %>%
data.frame()
dat <- cbind(dat, colours2apply)
datatable(dat,
options = list(columnDefs = list(list(visible=FALSE, targets = 6:10)))) %>%
formatStyle(1, valueColumns = 6, backgroundColor = JS("value")) %>%
formatStyle(2, valueColumns = 7, backgroundColor = JS("value")) %>%
formatStyle(3, valueColumns = 8, backgroundColor = JS("value")) %>%
formatStyle(4, valueColumns = 9, backgroundColor = JS("value")) %>%
formatStyle(5, valueColumns = 10, backgroundColor = JS("value"))
或者,使用循环:
DT <- datatable(dat,
options = list(columnDefs = list(list(visible=FALSE, targets = 6:10))))
for(i in 1:5){
DT <- DT %>%
formatStyle(i, valueColumns = i+5, backgroundColor = JS("value"))
}
DT
这篇关于DT根据单独的数据帧将背景色应用于单元格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文