如何跳过不完全空的行

问题描述 投票:0回答:1

所以,我正在尝试读取 Excel 文件。所发生的情况是,某些行对于某些列来说是空的,但不是所有列都是空的。我想跳过所有不完整的行,即所有列中都没有信息的行。例如:

在这种情况下,我想跳过第 1、5、6、7、8 行等。

r row skip
1个回答
0
投票

可能有更优雅的方法,但一个可能的解决方案是计算每行非

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

它能回答你的问题吗?

© www.soinside.com 2019 - 2024. All rights reserved.