我有一个参与者问卷响应的数据框,采用宽格式表示,每个列代表特定的问题/项目。
数据框看起来像这样:
id <- c(1, 2, 3, 4)
Q1 <- c(NA, NA, NA, NA)
Q2 <- c(1, "", 4, 5)
Q3 <- c(NA, 2, 3, 4)
Q4 <- c("", "", 2, 2)
Q5 <- c("", "", "", "")
df <- data.frame(id, Q1, Q2, Q3, Q4, Q5)
我希望R可以删除所有行的每个值都是NA或空白的列,因此我不想要Q1列(完全由NA组成)和Q5列(完全由""空白组成)。
根据这个thread,我可以使用以下代码来删除完全由NA组成的列:
df[, !apply(is.na(df), 2, all]
然而,该解决方案未解决空白值("")。由于我正在使用dplyr管道完成所有操作,是否有人可以解释一下如何将上述代码整合到dplyr管道中?
目前,我的dplyr管道如下所示:
df <- df %>%
select(relevant columns that I need)
在此之后,我被卡住了并使用方括号[]来获取非NA列的子集。
谢谢!非常感激。