如何删除R中至少包含一个0的行?

阅读 1510 收藏 0 点赞 0 评论 0

要删除至少包含一个 0 的行,我们可以使用单个方括号对行进行子集化, apply 将选择不包含一个零的行。例如,如果我们有一个名为 df 的数据框,那么我们可以使用命令 df[apply(df,1, function(x)all(x!=0)),]来删除包含至少一个 0 的行。

示例

考虑以下数据框 -

x1<-rpois(20,1)
x2<-rpois(20,5)
x3<-rpois(20,5)
df1<-data.frame(x1,x2,x3)
df1
输出结果
   x1 x2 x3
1  0  5  5
2  1  8  2
3  0  4  8
4  1  4  3
5  1  4  5
6  1  5  3
7  2 11  8
8  1  3  8
9  1  4  4
10 1  7  4
11 0  9  5
12 3  4  1
13 0  6  2
14 0  4  7
15 0  6  5
16 1  6  8
17 1  6  3
18 1  5  4
19 2  3  1
20 0  1  4

删除不包含至少一个 0 的 df1 行 -

示例

df1[apply(df1,1, function(x) all(x!=0)),]
输出结果
   x1 x2 x3
2  1  8  2
4  1  4  3
5  1  4  5
6  1  5  3
7  2 11  8
8  1  3  8
9  1  4  4
10 1  7  4
12 3  4  1
16 1  6  8
17 1  6  3
18 1  5  4
19 2  3  1

示例

y1<-sample(0:2,20,replace=TRUE)
y2<-sample(1:5,20,replace=TRUE)
y3<-sample(1:10,20,replace=TRUE)
df2<-data.frame(y1,y2,y3)
df2
输出结果
   y1 y2 y3
1  0  2  6
2  2  3  6
3  1  5  8
4  2  3  1
5  1  5  5
6  0  2  4
7  1  2 10
8  1  5  8
9  1  5  5
10 0  2  6
11 1  4  4
12 0  2  3
13 0  1  2
14 0  3  8
15 1  4  4
16 0  4  3
17 2  5  3
18 0  3  7
19 2  4  1
20 0  3  2

删除不包含至少一个 0 的 df2 行 -

示例

df2[apply(df2,1, function(x) all(x!=0)),]
输出结果
   y1 y2 y3
2  2  3  6
3  1  5  8
4  2  3  1
5  1  5  5
7  1  2 10
8  1  5  8
9  1  5  5
11 1  4  4
15 1  4  4
17 2  5  3
19 2  4  1

评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号