使用 condformat 包格式化数据帧

问题描述 投票:0回答:1

我正在尝试使用 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')) 
r dataframe conditional-formatting
1个回答
0
投票

您的代码正常工作,除了颜色

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')) 

输出:

© www.soinside.com 2019 - 2024. All rights reserved.