首页 > 解决方案 > 如何使用R突出显示不符合所需条件的excel中的列

问题描述

我希望标题具有足够的描述性或至少是有意义的。所以我知道你可以在 R 中进行所有这些数据操作,但并不是我所有的拼贴画都知道如何使用 R,所以我想制作一些 excel 文件供他们查看。

所以我看到有一些软件包可以帮助我解决我正在尝试做的事情,但我不确定如何以我想象的特定方式使用它们。

所以我有一个看起来像这样但规模很大的数据集。所以每一列都有一个标题,每个单元格中要么有“是”,要么有一个空白。如果它是空白的,我想要做的是突出显示整个列。所以在我做的小例子中,理想情况下我会突出显示样本 1 和 2。这是否可以在 R 中完成,然后导出到 Excel 文档中?

sample1 sample2 sample3 sample4
yes             yes
yes 
yes 
yes             yes

标签: ropenxlsx

解决方案


假设您在 R 中的空格是 NA ,那么以下代码行会有所帮助。代码中的注释以在需要时进行解释。

library(openxlsx)

# find empty columns
columns_to_format <- which(sapply(df1, function(x) length(x) == sum(is.na(x)) ))
rows <- nrow(df1) + 1


wb <- createWorkbook()

# create style used for high lighting empty columns
highlight_cells <- createStyle(fgFill = "yellow")

# Add worksheet
addWorksheet(wb, "example")
writeData(wb, "example", x = df1)

# loop over columns to high light
for(i in seq_along(columns_to_format)) {
  addStyle(wb, "example", style = highlight_cells, rows = 2:rows, cols = columns_to_format[i])
}

saveWorkbook(wb, "Example.xlsx", overwrite = TRUE)

在此处输入图像描述

数据:

df1 <- structure(list(sample1 = c("yes", "yes", "yes", "yes"), sample2 = c(NA_character_, 
NA_character_, NA_character_, NA_character_), sample3 = c("yes", 
NA, NA, "yes"), sample4 = c(NA_character_, NA_character_, NA_character_, 
NA_character_)), row.names = c(NA, -4L), class = "data.frame")

推荐阅读