假设我有一个包含100多个列的数据集,而我只需要保留满足所有100列上应用的一个条件的数据行。我该怎么做?
假设,如下所示...我只需要保留Col1或2或3或4大于0的行
Col1 Col2 Col3 Col4
1 1 3 4
0 0 4 2
4 3 4 3
2 1 0 2
1 2 0 3
0 0 0 0
在上面的示例中,除最后一行外,所有行都将使其..我需要将结果放置在与原始数据相同的数据框中。不知道我是否可以使用lapply遍历> 0的列,或者我可以使用子集。
我可以使用列索引并执行
df<-subset(df,c(2:100)>0)
吗?这不会给我正确的结果。
最佳答案
假设您的data.frame是DF
,那么使用[
将为您完成工作。
> DF[DF[,1]>0 | DF[,2] >0 | DF[,3] >0 | DF[,4] >0, ]
Col1 Col2 Col3 Col4
1 1 1 3 4
2 0 0 4 2
3 4 3 4 3
4 2 1 0 2
5 1 2 0 3
如果您有数百列,则可以使用这种替代方法
> DF[rowSums(DF)=!0, ]
Col1 Col2 Col3 Col4
1 1 1 3 4
2 0 0 4 2
3 4 3 4 3
4 2 1 0 2
5 1 2 0 3
关于r - 根据多列条件过滤行R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18589595/