如何跳过r中不完全为空的行
How to skip not completly empty rows in r
所以,我正在尝试读取 excel 个文件。发生的情况是某些列的某些行是空的,但并非所有列都是空的。我想跳过所有不完整的行,即所有列中都没有信息的行。例如:
在这种情况下,我想跳过第 1、5、6、7、8 行等等。
可能有更优雅的方法,但一个可能的解决方案是计算每行不是 NA
的元素数,并只保留元素数等于 NA
的行列。
使用这个虚拟示例:
df <- data.frame(A = LETTERS[1:6],
B = c(sample(1:10,5),NA),
C = letters[1:6])
A B C
1 A 5 a
2 B 9 b
3 C 1 c
4 D 3 d
5 E 4 e
6 F NA f
使用apply
,您可以计算每行没有NA
的元素数:
v <- apply(df,1, function(x) length(na.omit(x)))
[1] 3 3 3 3 3 2
然后,只保留元素数量等于列数(对应于完整行)的行:
df1 <- df[v == ncol(df),]
A B C
1 A 5 a
2 B 9 b
3 C 1 c
4 D 3 d
5 E 4 e
它能回答您的问题吗?
所以,我正在尝试读取 excel 个文件。发生的情况是某些列的某些行是空的,但并非所有列都是空的。我想跳过所有不完整的行,即所有列中都没有信息的行。例如:
在这种情况下,我想跳过第 1、5、6、7、8 行等等。
可能有更优雅的方法,但一个可能的解决方案是计算每行不是 NA
的元素数,并只保留元素数等于 NA
的行列。
使用这个虚拟示例:
df <- data.frame(A = LETTERS[1:6],
B = c(sample(1:10,5),NA),
C = letters[1:6])
A B C
1 A 5 a
2 B 9 b
3 C 1 c
4 D 3 d
5 E 4 e
6 F NA f
使用apply
,您可以计算每行没有NA
的元素数:
v <- apply(df,1, function(x) length(na.omit(x)))
[1] 3 3 3 3 3 2
然后,只保留元素数量等于列数(对应于完整行)的行:
df1 <- df[v == ncol(df),]
A B C
1 A 5 a
2 B 9 b
3 C 1 c
4 D 3 d
5 E 4 e
它能回答您的问题吗?