r - 根据多列条件过滤行R

标签 r subset multiple-columns

假设我有一个包含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/

相关文章:

merge - 数据表 - 将列合并在一起

r - 使这个过程更加处理器密集和内存密集

javascript - Svg D3.js 如何使用条件选择全部

r - 如何从 R 中的 shapefile 中按属性消除某些区域并创建一个新的 shapefile?

r - 如何使用 dplyr::filter() 删除观察组

MySQL 使用虚拟列连接表

html - 位置为 :fixed and 100% height can't scroll 的 div

r - 如何在循环调用中使用 data.table 生成变量的线性组合并更新表?

r - 将 shiny.tag 对象( Shiny 输入对象)转换为 html 对象或字符对象

r - R 中的神经网络包