怎么样运用 R 删除包含至少一个 0 的行?


要删除包含至少一个 0 的行,我们可以使用单方括号带 apply 子集的行,它将选择不包含任何一个 0 的行。例如,如果我们有一个叫做 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

更新日期: 2021 年 3 月 16 日

3K+ 浏览量

开始您的 职业生涯

完成课程并获得认证

开始
广告