我有这个问题,我根本无法搞清楚。我在R中导入了一个表,它有20列和大约20,000行。列具有数值。我想知道我怎么只能选择至少有一半列的值大于20的行。为了清楚地解释,我只想选择至少10列的值大于20的行。
我知道如何选择任何一列必须具有大于20的值的行。为此,我使用了以下代码:
y=Table[apply(Table[, -1], MARGIN = 1, function(x) any(x > 20)), ]
有没有办法做同样的事情,至少有一半的列的值大于20?
谢谢!
答案 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,]