【发布时间】:2017-03-22 07:51:03
【问题描述】:
在 R 中,我有一个包含 N 列所有数字的矩阵。 (每一行都有一个名称,但这无关紧要。)我想返回至少有一列的值大于某个阈值的行。现在,我正在做这样的事情:
THRESHOLD <- 10
# my_matrix[,1] can be ignored
my_matrix <- subset (my_matrix, my_matrix[,1] > THRESHOLD | my_matrix[,2] > THRESHOLD | ... )
必须手动列出每一列似乎很奇怪。另外,如果输入列的数量发生变化,我必须重写它。
必须有更好的方法,但我不知道我应该寻找什么。
如果这更容易的话,我可以将我的矩阵转换为数据框...任何建议将不胜感激!
【问题讨论】:
-
请展示一个可重现的示例,包括预期的输出。
-
mat[apply( mat[, 2:ncol(mat)], 1, function( x ) any( x > threshold ) ), ]mat 是你的矩阵数据 -
my_matrix[apply(as.matrix(my_matrix[-1,])>THRESHOLD, 1, any),] -
矩阵可以保存数字异或字符,但不能同时保存。这是什么意思第一列是字符串,但其他列是数字:第一列是行名或您的数字存储为字符,例如“3.14”。请编辑您的问题:stackoverflow.com/posts/42945642/edit
-
@Sathish 谢谢你;我会试一试。随时发布解决方案,以便我接受。事实证明,我不知道“应用”可以这样使用。这就是我一直在寻找的......