【问题标题】:How to Filter Data for 2 conditions in R?如何在 R 中过滤 2 个条件的数据?
【发布时间】:2015-08-22 17:55:33
【问题描述】:

我有一组数据需要过滤,以仅保留至少 3 列中得分至少为 5 的行。

              Cluster_ID       1         2        3         4        5        6
 1 chr5:100468296..100468297,+ 0.43595 11.285500 0.000000  2.216480 0.000000  0.000000
 2 chr5:100469033..100469074,+ 0.08719  1.203780 0.393488  2.014980 0.478505  1.995390
 3 chr5:100496827..100496912,+ 0.34876  1.053310 1.180460  0.805992 0.837383  0.798157

我想我已经能够通过这样做获得分数至少为 5 的行:

CAGE_filter[!CAGE_filter[,2:7]>=5]

但是,我不确定如何过滤它以通过列。我是 R 新手,有人可以告诉我我的方向是否正确吗?

谢谢。

【问题讨论】:

    标签: r filter filtering


    【解决方案1】:

    我们首先创建一个逻辑 data.frame,其中每个单元格 >= 5 时为 TRUE。我们逐行计算 TRUE 单元格。我们只选择至少有 3 个 TRUE 单元格的行。提供您的 data.frame 称为 d:

    d[apply(d[,2:7] >= 5,1,sum) >= 3,]
    

    在您的示例数据中,它会返回一个空的 data.frame,因为没有这样的行。

    【讨论】:

      【解决方案2】:

      我们还可以使用rowSums来创建逻辑条件并过滤数据集“d”的行。

       d[rowSums(d[2:7] >= 5, na.rm=TRUE) >=3,] 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-29
        • 1970-01-01
        • 1970-01-01
        • 2023-01-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多