筛选包含至少X个观察值的行表,其值大于(或等于)Y

时间:2013-07-19 12:02:48

标签: r filtering

我正在尝试过滤包含至少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

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

2 个答案:

答案 0 :(得分:4)

如果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

答案 1 :(得分:0)

如果a是您的表名。

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

  

a [apply(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