在 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"
我正在尝试获取满足特定条件的唯一列名。例如,对于这个矩阵 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"