我正在尝试使用 condformat 包有条件地为 df 中的三列着色。我已经成功完成了一个(百分比),但无法理解为什么其他(AnswerA 和 AnswerB)不起作用。我真的很感激任何指导。
这是我的代码:
library(condformat)
my_df <- data.frame(
Percentage = runif(10),
AnswerA = c("A", "A", "B", "B", "C", "C", "D", "D", "E", "E"),
AnswerB = c("A", "A", "A", "B", "C", "C", "D", "D", "D", "E")
)
my.df.cf <- condformat(my_df) %>%
## Highlight Percentages below 20% or above 80%
rule_fill_discrete('Percentage',
expression = cut(Percentage, breaks = c(0, 0.2, 0.8, 1), include.lowest = TRUE, labels = FALSE),
colours = c('1' = 'firebrick1', '2' = 'white', '3' = 'lightgreen')) %>%
## Highlight when answers A and B don't match
rule_fill_discrete(c('AnswerA','AnswerB'),
expression = AnswerA != AnswerB ,
colours = c('TRUE' = 'firebrick1', 'FALSE' = 'white'))
您的代码正常工作,除了颜色
firebrick1
。
尝试使用十六进制代码:
condformat(my_df) %>%
## Highlight Percentages below 20% or above 80%
rule_fill_discrete(
columns = Percentage,
expression = cut(
Percentage,
breaks = c(0, 0.2, 0.8, 1),
include.lowest = TRUE,
labels = FALSE),
colours = c(
'1' = '#FF3030',
'2' = '#FFFFFF', '3' =
'#90EE90')) %>%
## Highlight when answers A and B don't match
rule_fill_discrete(
columns = contains("Answer"),
expression = AnswerA != AnswerB,
colours = c(
'TRUE' = '#FF3030',
'FALSE' = '#FFFFFF'))
输出: