如何删除R中至少包含一个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