在 r 中找到满足条件的列

find columns meeting a condition in r

我正在尝试获取满足特定条件的唯一列名。例如,对于这个矩阵 M,我试图获得小于 5 的唯一列。从矩阵中,我想要的结果是第一行的向量 (a,b,c) - a ,从第二行开始b,从第三行开始b,从第五行开始c

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]

使用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"