找到满足r条件的列

时间:2018-03-25 17:23:22

标签: r matrix apply sapply

我正在尝试获得满足特定条件的唯一列名称。例如,使用此矩阵(a,b,c),我试图获得小于5的唯一列。从矩阵中,我希望的结果是来自第一行的向量a - b来自第二行的b,来自第五行的第三行c的{​​{1}}。

set.seed(1234)
M = matrix(sample(20,20), ncol=4)

   M
     [,1] [,2] [,3] [,4]
[1,]    3   10    7    9
[2,]   12    1    5   17
[3,]   11    4   20   16
[4,]   18    8   15   19
[5,]   14    6    2   13

colnames(M) = letters[1:4]

1 个答案:

答案 0 :(得分:1)

使用base-R的一种可能性可以是

M[,colSums(M<5)>0]

#       a  b  c
# [1,]  3 10  7
# [2,] 12  1  5
# [3,] 11  4 20
# [4,] 18  8 15
# [5,] 14  6  2

如果OP只想知道满足条件的列的名称,那么解决方案可以是:

colnames(M[,colSums(M<5)>0])
#[1] "a" "b" "c"