2017-07-21 1 views
2

Match Ich muss einen Wert zu seinem nächsten entsprechenden Wert in R und einen Index extrahieren.Werte auf den nächsten Wert in einem anderen Array in R

Der Befehl FindInterval(value,array) erreicht dies, funktioniert aber nur, wenn das Array in aufsteigender Reihenfolge ist.

Der Befehl match(value,array) funktioniert nur, wenn der Wert eine genaue Übereinstimmung mit einem Array liefert.

Zum Beispiel

array <- c(0.1,0.5,0.6,0.3,0.9,1.4,0.45) 
value <- 0.47 

ich einen Befehl mag, die dann diese Spiele zum nächsten value entsprechenden (hier 0,45) und gibt die index (hier 7).

+8

'which.min (abs (array - Wert))' –

+0

@RonakShah, Sie Sir sind, was diese Welt nicht genug von #hero #notallheroswearcapes hat –

Antwort

4

Wir können value von jedem Element von array subtrahieren, erhalten Sie die absolute Differenz und erhalten Sie die Indexposition des Minimalwerts mit which.min.

which.min(abs(array - value)) 
# [1] 7 
Verwandte Themen