我这里有两个字符串向量,它们的顺序很重要,不能改变。
vec1 <- c("carrot","carrot","carrot","apple","apple","mango","mango","cherry","cherry")
vec2 <- c("cherry","apple")
我希望找出vec2中的元素是否出现在vec1中,如果是,则找出它们的位置(索引/位置)和顺序。
我尝试了which(vec1 %in% vec2)
,得到了4 5 8 9
。这些是正确的索引,但顺序不对。我还尝试了match(vec2,vec1)
,得到了8 4
。只返回了第一个匹配项。如果vec1是唯一的,这种方法将有效。
理想情况下,我要的结果是:8 9 4 5
。
cherry首先在位置8和9上匹配,然后apple在4和5上匹配。
有没有一种聪明的方法可以做到这一点,而不必使用循环?