这里我有两个字符串向量,其顺序很重要,不能更改。与有序索引匹配的R矢量向量
vec1 <- c("carrot","carrot","carrot","apple","apple","mango","mango","cherry","cherry")
vec2 <- c("cherry","apple")
我想看看在VEC 2的元素出现在VEC 1,如果有,在哪里(索引/位置)和以什么顺序。我试过which(vec1 %in% vec2)
,它给4 5 8 9
。这些是正确的索引,但顺序错误。我试过match(vec2,vec1)
,它给出8 4
。只返回第一个匹配。如果vec1是唯一的,这将工作。
理想情况下,我正在寻找此结果:8 9 4 5
。 樱桃第一次在第8和第9位匹配,然后苹果在第4和第5位匹配。
有没有一种明智的方法可以做到这一点,而不诉诸于循环?