我想为以下数据框中的特定单元格着色。例如,在 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), 20, replace = TRUE),
outcome = sample(1:4, 20, replace = TRUE))
cols <- with(df, ifelse(outcome == 1, 'magenta', 'white'))
library('htmlTable')
htmlTable(as.matrix(df), col.rgroup = cols)
我意识到添加不同颜色的问题在于 with
中的 ifelse
调用将我限制为只有洋红色和白色。如何在此处添加另一个条件?
虽然我知道导致多色问题的原因,但我对如何仅对特定单元格着色一无所知。
这与 the accepted answer to this question 的示例相同。 . 谢谢!
最佳答案
你考虑过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")))
https://stackoverflow.com/questions/31323885/