怎么样运用 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
广告