我有一个CSV文件
Identity,Number,Data,Result,Add,,,,,,,,,,,,
1,,,,4,55,,92,,,,,,,,,62,
3,,,,7,43,,12,,,,,,,,,74,
7,,,,3,58,,52,,,,,,,,,64,
0,,,,6,10,,22,,,,,,,,,96,
3,,,,8,13,,92,,,,,,,,,22,
Run Code Online (Sandbox Code Playgroud)
如何删除R中的空列?
期望的输出
Identity,Number,Data,Result,Add
1,4,55,92,62
3,7,43,12,74
7,3,58,52,64
0,6,10,22,96
3,8,13,92,22
Run Code Online (Sandbox Code Playgroud) 我有一个广泛格式的参与者问卷答复数据框,每列代表一个特定的问题/项目.
数据框看起来像这样:
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)
Run Code Online (Sandbox Code Playgroud)
我希望R删除在每个行中具有所有值的列,这些行是(1)NA或(2)空白.因此,我不希望列Q1(完全由NAs组成)和列Q5(完全由""形式的空白组成).
根据这个帖子,我可以使用以下内容删除完全由NA组成的列:
df[, !apply(is.na(df), 2, all]
Run Code Online (Sandbox Code Playgroud)
但是,该解决方案不解决空白("").当我在dplyr管道中完成所有这些操作时,是否还有人可以解释如何将上述代码合并到dplyr管道中?
此时,我的dplyr管道如下所示:
df <- df %>%
select(relevant columns that I need)
Run Code Online (Sandbox Code Playgroud)
之后,我被困在这里并使用方括号[]来对非NA列进行子集化.
谢谢!非常感激.