代码之家  ›  专栏  ›  技术社区  ›  neuron

如何使用R突出显示excel中不满足所需条件的列

  •  1
  • neuron  · 技术社区  · 7 年前

    我希望这个标题足够描述性,或者至少有意义。所以我知道你可以用R来处理所有的数据,但不是所有的拼贴都知道如何使用R,所以我想制作一些excel文件给他们看。

    所以我有一个类似这样的数据集,但规模很大。因此,每列都有一个标题,每个单元格中要么有“是”,要么有空白。我想做的是高光整个列如果它是空白的。在这个小例子中

    sample1 sample2 sample3 sample4
    yes             yes
    yes 
    yes 
    yes             yes
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   phiver    7 年前

    假设空格是NA in R,下面的代码行会有所帮助。代码中的注释,用于在需要时进行解释。

    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)
    

    enter image description here

    数据:

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