這裏我有兩個字符串向量,其順序很重要,不能更改。與有序索引匹配的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位匹配。
有沒有一種明智的方法可以做到這一點,而不訴諸於循環?