In R habe ich ein Element xund einen Vektor v. Ich möchte den ersten Index eines Elements finden, der vgleich 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 xes sich um einen Vektor handelt? Das heißt, es sollte einen Vektor von Indizes zurückgeben, der die Position jedes Elements von xin 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ögenmatchund gebenPositionmöglicherweise nicht so viele Daten zurück wiewhich, aber sie sind nicht unbedingt effizienter.