识别列索引匹配给定的字符串向量

时间:2013-02-05 03:52:06

标签: r matrix vector vectorization string-matching

我有一个字符串

的向量
x<-c('a','b')

我有一个多列的矩阵1;其中包含该字符串向量中的名称。我想获得与其名称相匹配的列号/索引。

which(colnames(sample_matrix) == x)

当x不是矢量而是单个元素时,上述情况有效。任何解决方案?

3 个答案:

答案 0 :(得分:8)

尝试

 which(colnames(sample_matrix) %in% x)

答案 1 :(得分:2)

您要找的是%in%,如下所示:

which(colnames(sample_matrix) %in% x)

或者,match

match(x, colnames(sample_matrix))

答案 2 :(得分:2)

此外:

grep("^a$|^b$", colnames(sample_matrix) )

使用grep通常更为通用,即测试一串值中的状态。您可以获取与模式匹配的所有项目,例如所有以“a”开头的名称。