根据应用于多个列的单个条件子集数据框

JPD*_*JPD 4 conditional r subset

我已经浏览了这个网站上现有的Q&A子集,但是找不到我想要的东西.

我想基于一个条件对数据帧进行子集化(例如,如果该值低于5).但是,我只想要所有列中的值低于5的行.

例如,使用iris数据集 - 我想选择列1-3都具有低于5的值的所有行.

subdata <- iris[which(iris[,1:3]<5),]
Run Code Online (Sandbox Code Playgroud)

这不适合我.我在子集数据的底部得到了很多NA行.

任何帮助非常感谢!

Qku*_*HBH 10

尝试

subdata <- iris[apply(iris[,1:3] < 5, 1, all),]
Run Code Online (Sandbox Code Playgroud)

  • 它告诉`apply`为`iris [,1:3] <5`的每一行运行函数`all`(基本上是逻辑AND).参见`?apply` - 它在`R`中非常有用. (2认同)