【发布时间】:2013-01-19 22:19:14
【问题描述】:
我有一个字符串向量
x<-c('a','b')
我有一个多列矩阵;其中包含该字符串向量中的名称。我想获取与其名称匹配的列号/索引。
which(colnames(sample_matrix) == x)
当 x 不是向量而是单个元素时,上述方法有效。有什么解决办法吗?
【问题讨论】:
标签: r matrix vector vectorization string-matching
我有一个字符串向量
x<-c('a','b')
我有一个多列矩阵;其中包含该字符串向量中的名称。我想获取与其名称匹配的列号/索引。
which(colnames(sample_matrix) == x)
当 x 不是向量而是单个元素时,上述方法有效。有什么解决办法吗?
【问题讨论】:
标签: r matrix vector vectorization string-matching
还有:
grep("^a$|^b$", colnames(sample_matrix) )
使用 grep 通常比测试是否存在于一串值中更通用。您可以获取所有与模式匹配的项目,例如所有以“a”开头的名称。
【讨论】:
您正在寻找的是%in%,如:
which(colnames(sample_matrix) %in% x)
或者,或者,match
match(x, colnames(sample_matrix))
【讨论】:
试试
which(colnames(sample_matrix) %in% x)
【讨论】: