【问题标题】:Filter table rows that contain at least X observations with value larger (or equal) than Y筛选包含至少 X 个观察值大于(或等于)Y 的表行
【发布时间】:2013-07-18 17:04:50
【问题描述】:

我正在尝试过滤包含至少 3 个观察值大于或等于 0.7 的表行。这是我想在 R 中做的一个例子:

   sA  sB  sC  sD  sE  sF
g1 0.1 0.2 0.8 1.2 0.5 0.0
g2 0.7 0.3 0.9 0.8 0.5 1.0
g3 0.2 0.3 0.8 0.9 0.5 0.0
g4 0.5 0.4 0.9 0.7 0.5 1.0
g5 0.2 0.2 0.8 0.9 0.5 0.0

过滤将导致:

   sA  sB  sC  sD  sE  sF
g2 0.7 0.3 0.9 0.8 0.5 1.0
g4 0.5 0.4 0.9 0.7 0.5 1.0

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: r filtering


    【解决方案1】:

    如果 x 是你的数据,

       > x[rowSums(x >= 0.7) >= 3,]
                sA  sB  sC  sD  sE sF
            g2 0.7 0.3 0.9 0.8 0.5  1
            g4 0.5 0.4 0.9 0.7 0.5  1
    

    【讨论】:

      【解决方案2】:

      如果 a 是您的表名。

      您可以通过以下方式访问请求的行:

      a[应用(a>=0.7,1,sum) >=3,]

             sA  sB  sC  sD  sE sF
         g2 0.7 0.3 0.9 0.8 0.5  1
         g4 0.5 0.4 0.9 0.7 0.5  1
      

      【讨论】:

        猜你喜欢
        • 2020-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-01
        • 2016-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多