将特定索引与向量

时间:2017-06-08 14:11:26

标签: r vector

我可以将索引与维护的向量相关联,并且可以通过第二个向量检索吗?

V1<-c("a", "b", "c", "d", "e", "f")

我想将一个类似于以下内容的索引关联起来:

"a" "b" "c" "d" "e" "f"
 1   2   3   4   5   6

然后是第二个载体

V2<-c("b", "c", "f")

我应该得到整数2, 3, 6

我知道我可以创建一个包含两列ID=V1 and ixd= 1:length(V1)和子集V2的数据框

我想知道是否有更快的方式

2 个答案:

答案 0 :(得分:1)

你可以做一个命名向量,即

v1 <- setNames(seq(6), letters[1:6])

#then,

v1[names(v1) %in% c('b', 'c', 'f') ]
#b c f 
#2 3 6 

请注意,虽然命名向量的值也有名称,但它仍然是数字

或者像@jogo建议的那样,只需

v1[c('b', 'c', 'f')]
#b c f 
#2 3 6 

答案 1 :(得分:1)

我想提供另一种方式:

V1 <- 1:6 names(V1) <- letters[1:6] # Attach names to your list V2 <- letters[seq(2,6,2)] # c("b","d","f") V1[V2]

这给了我

b d f
2 4 6