R:选择至少有一半列满足特定条件的行

时间:2014-08-10 22:36:19

标签: r

我有这个问题,我根本无法搞清楚。我在R中导入了一个表,它有20列和大约20,000行。列具有数值。我想知道我怎么只能选择至少有一半列的值大于20的行。为了清楚地解释,我只想选择至少10列的值大于20的行。

我知道如何选择任何一列必须具有大于20的值的行。为此,我使用了以下代码:

    y=Table[apply(Table[, -1], MARGIN = 1, function(x) any(x > 20)), ]  

有没有办法做同样的事情,至少有一半的列的值大于20?

谢谢!

1 个答案:

答案 0 :(得分:0)

使用您的方法我们可以使用不同的函数而不是any()

y=Table[apply(Table[, -1], MARGIN = 1, function(x) {sum(x>20)*2 >= length(x)}), ]

==============编辑================

更简单,更快捷的是避免apply()

Y <- Table[rowSums(Table > 20) >= 10,]