Ich habe eine Frage zum Finden von Indexwerten in einem Vektor.Den nächsten Index zu einem Wert finden in R
Sagen wir, ich habe einen Vektor wie folgt:
vector <- c(1,2,4,6,8,10)
Und lassen Sie uns sagen, dass ich den Wert ‚5‘. Ich möchte den maximalen Index in "Vektor" so finden, dass er kleiner oder gleich dem Wert 5 ist. Im obigen Beispiel wäre dieser Index 3 (da 4 kleiner oder gleich 5 ist). Und falls ich stattdessen einen Vektor hatte wie:
vector <- c(1,2,4,5,6,8,10)
Dann, wenn ich einen Wert von weniger finden waren als oder gleich 5 ist, würde dieser Index sein jetzt 4 statt 3.
Aber ich wollen auch die ersten und letzten Zeit finden diesen Index auftritt. Zum Beispiel, wenn ich einen Vektor, wie gehabt:
vector <- c(1,1,2,2,4,5,5,5,5,6,8,10)
dann das erste Mal in diesem Index 6 und das letzte Mal in diesem Index wäre 9. Gibt es
einen Kurzschluss auftritt wäre auftritt, ein- Line-Methode, mit der ich diese Aufgabe ausführen könnte? Bisher habe ich die Funktion max (which (....)) benutzt, aber ich finde, dass diese Methode für große Datensätze extrem ineffizient ist, da sie buchstäblich Hunderte/Tausende von Werten auflistet, also würde ich gerne eine finden effizientere Methode, wenn möglich, die in einer Zeile passen kann.
Vielen Dank im Voraus.
Wenn 'vector' sortiert ist, siehe'? FindInterval' - einmal mit "left.open = TRUE" und einmal mit "left" aufrufen.open = FALSE "sollte die zwei Indizes geben (plus ein bisschen' if' Manipulation zu distinct '<' von '<=' –