In R habe ich ein Element x
und einen Vektor v
. Ich möchte den ersten Index eines Elements finden, der v
gleich ist x
. Ich weiß, dass ein Weg, dies zu tun, ist : which(x == v)[[1]]
, aber das scheint übermäßig ineffizient. Gibt es einen direkteren Weg, dies zu tun?
Gibt es für Bonuspunkte eine Funktion, die funktioniert, wenn x
es sich um einen Vektor handelt? Das heißt, es sollte einen Vektor von Indizes zurückgeben, der die Position jedes Elements von x
in angibt v
.
which(x == v)[[1]]
nicht ist.
which(x == v)[[1]]
ist es nicht so sehr ineffizient. Es ist ein Vergleich (==
) -Operator, der auf alle Vektorelemente angewendet wird, und eine Teilmenge auf den Indizes (which
). Das ist es. Nichts, was relevant sein sollte, solange Sie nicht 10.000 Wiederholungen für diese Funktion ausführen. Andere Lösungen mögenmatch
und gebenPosition
möglicherweise nicht so viele Daten zurück wiewhich
, aber sie sind nicht unbedingt effizienter.