使用R语言openxlsx包设置条件格式失效问题求助
R中openxlsx条件格式配置失效问题
我编写了R代码,想要依据max列的值为Score列配置条件格式,具体规则如下:
- Score=8且max=8时,单元格背景设为绿色;
- Score=4且max=8时,单元格背景设为黄色;
- Score=4且max=4时,单元格背景设为绿色;
- Score=2且max=4时,单元格背景设为黄色;
- Score=0时,单元格背景设为红色。
但目前仅测试绿色规则的代码不仅未生效,还弹出错误提示,点击日志链接可查看相关XML输出。以下是基于G5W建议修改后的代码:
library(tibble) library(openxlsx) data <- tribble( ~Week, ~Facility, ~Indicator, ~`Indicator Value`, ~`Yellow Gap`, ~`Green Gap`, ~Score, ~max, 8, "Mngeta Health Center", "3MMD Coverage", 0.96, -13, 10, 4, 8, 8, "Mngeta Health Center", "12 Month Retention", 0.96, 35, 50, 2, 4, 8, "Mngeta Health Center", "Appointment Adherence", 0.97, 11, 24, 0, 8, 8, "Mngeta Health Center", "EID 12 Months", 1, 0, 0, 8, 8, 8, "Mngeta Health Center", "Early Retention", 1, 0, 0, 8, 8, 8, "Mngeta Health Center", "Recent Retention", 1.04, -19, -5, 8, 8, 8, "Mngeta Health Center", "6MMD Coverage", 0.98, -29, -9, 8, 8, 8, "Mngeta Health Center", "IPT Coverage", 0.99, -15, -1, 4, 4, 8, "Mngeta Health Center", "EID 2 Months", 1, 0, 0, 8, 8, 8, "Mngeta Health Center", "Viral Load Coverage", 0.95, -67, -2, 8, 8 ) # Convert Score column to numeric data$Score <- as.numeric(data$Score) wb <- createWorkbook() # Add a new worksheet addWorksheet(wb, "Formatted Data") # Write the data to the worksheet writeData(wb, "Formatted Data", data) # Create a style object for green color green_style <- createStyle(bgFill = "green") conditionalFormatting(wb, sheet = "Formatted Data", cols = which(colnames(data) == "Score"), rows = 1:(nrow(data)+1), rule = '"Score"==8 & "max"==8', style = green_style) saveWorkbook(wb, "formatted_data.xlsx", overwrite = TRUE)
(代码创建于2023-02-25,使用reprex包v2.0.1)
内容的提问来源于stack exchange,提问作者Tumaini Kilimba
相关产品推荐
相关产品推荐

