Как выделить столбцы в Excel, которые не удовлетворяют желаемому условию, используя R
Я надеюсь, что название было достаточно описательным или, по крайней мере, имело смысл. Так что я знаю, что вы можете выполнять все эти манипуляции с данными в R, но не все мои коллажи знают, как использовать R, поэтому я хотел сделать несколько файлов Excel, чтобы они могли на них смотреть.
Итак, я увидел, что есть некоторые пакеты, которые могут помочь мне в том, что я пытаюсь сделать, но я не уверен, как использовать их особым образом, который я себе представляю.
Итак, у меня есть набор данных, который выглядит примерно так, но в гораздо большем масштабе. Таким образом, каждый столбец имеет заголовок и будет иметь "да" или пробел в каждой ячейке. Что я хочу сделать, так это выделить весь столбец, если он пуст. Таким образом, в небольшом примере, который я сделал, в идеале я бы выделил образцы 1 и 2. Возможно ли это сделать в R, а затем экспортировать в документ Excel?
sample1 sample2 sample3 sample4
yes yes
yes
yes
yes yes
1 ответ
Предполагая, что пробелы являются NA в 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)
данные:
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")