6

我有一个字符串向量

x<-c('a','b')

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

which(colnames(sample_matrix) == x)

当 x 不是向量而是单个元素时,上述方法有效。有什么解决办法吗?

4

3 回答 3

8

尝试

 which(colnames(sample_matrix) %in% x)
于 2013-02-05T03:55:51.997 回答
3

您正在寻找的是%in%

which(colnames(sample_matrix) %in% x)

或者,或者,match

match(x, colnames(sample_matrix))
于 2013-02-05T03:57:24.213 回答
2

还:

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

使用 grep 通常比测试是否存在于一串值中更通用。您可以获得与模式匹配的所有项目,例如所有以“a”开头的名称。

于 2013-02-05T05:25:01.063 回答