我想在以下数据框中为特定单元格着色.例如,在inputval列中,我想突出显示[0.8,0.9)品红色范围内的单元格,以及[0.7,0.8]蓝色范围内同一列中的单元格.同样,我希望值为1的输出列单元格为洋红色,而值为4的输出列单元格为蓝色.对于数据帧中的其余单元格,我希望它们保持白色.
我有以下可重现的代码,仅按行突出显示,并限制我只用洋红色和白色着色.如何添加其他颜色并按单元格添加?
set.seed(123) df <- data.frame(id = sample(1:100,20,replace = TRUE),inputval = sample(seq(0,1,by=0.01),outcome = sample(1:4,replace = TRUE)) cols <- with(df,ifelse(outcome == 1,'magenta','white')) library('htmlTable') htmlTable(as.matrix(df),col.rgroup = cols)
我意识到添加不同颜色的问题是ifelse调用,这限制了我只有洋红色和白色.我怎样才能在这里添加其他条件?
虽然我知道是什么导致了多色问题,但我对如何仅为特定细胞着色毫无头绪.
解决方法
你考虑过DT吗?
library(DT) datatable(df,rownames = FALSE) %>% formatStyle(columns = "inputval",background = styleInterval(c(0.7,0.8,0.9)-1e-6,c("white","lightblue","magenta","white"))) %>% formatStyle(columns = "outcome",background = styleEqual(c(1,4),c("magenta","lightblue")))