【问题标题】:Subset a dataframe based on a single condition applied to multiple columns基于应用于多个列的单个条件对数据框进行子集
【发布时间】:2013-02-10 16:21:29
【问题描述】:

我浏览了本网站上现有的子集问答,但找不到我想要的内容。

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

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

subdata <- iris[which(iris[,1:3]<5),]

这不适合我。我在子集数据的底部有很多 NA 行。

非常感谢任何帮助!

【问题讨论】:

    标签: r conditional subset


    【解决方案1】:

    试试

    subdata <- iris[apply(iris[,1:3] < 5, 1, all),]
    

    【讨论】:

    • 出于兴趣,1&lt;5all 之间做了什么?
    • 它告诉applyiris[,1:3] &lt; 5 的每一行运行函数all(基本上是一个逻辑与)。请参阅?apply - 在R 中非常有用。
    猜你喜欢
    • 2018-12-06
    • 2016-03-19
    • 2018-05-08
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    相关资源
    最近更新 更多