Hier habe ich zwei String-Vektoren, deren Reihenfolge wichtig ist und nicht geändert werden kann.R Vektor-Vektor-Matching mit geordneten Indizes
vec1 <- c("carrot","carrot","carrot","apple","apple","mango","mango","cherry","cherry")
vec2 <- c("cherry","apple")
Ich möchte herausfinden, ob Elemente in vec2 in vec1 erscheint und wenn ja, wo (Index/Position) und in welcher Reihenfolge.
Ich versuchte which(vec1 %in% vec2)
, die 4 5 8 9
gibt. Dies sind korrekte Indizes, aber in der falschen Reihenfolge. Ich versuchte match(vec2,vec1)
, die 8 4
gibt. Nur die erste Übereinstimmung wird zurückgegeben. Dies würde funktionieren, wenn vec1 einmalig wäre.
Idealerweise suche ich nach diesem Ergebnis: 8 9 4 5
. Kirsche ist zuerst an Position 8 und 9 und dann Apfel ist abgestimmt auf 4 und 5.
Gibt es eine kluge Möglichkeit, dies ohne Rückgriff auf Schleifen tun?