Odp.: jak znaleźć najbliższą wartość w wektorze


Aby znaleźć najbliższą wartość pomiędzy elementami dwóch wektorów w R, możesz użyć następującej podstawowej składni:

 #define cut points
cuts <- c(-Inf, vector2[-1]-diff(vector2)/2, Inf)

#for each value in vector1, find closest value in vector2
cut(vector1, breaks=cuts, labels=vector2)

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: znajdowanie najbliższej wartości w wektorze w R

Załóżmy, że w R mamy następujące dwa wektory:

 #definevectors
vector1 <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
vector2 <- c(3, 5, 8, 11)

Załóżmy teraz, że dla każdej wartości pierwszego wektora chcemy znaleźć najbliższą wartość w drugim wektorze.

W tym celu możemy użyć następującej składni:

 #define cut points
cuts <- c(-Inf, vector2[-1]-diff(vector2)/2, Inf)

#for each value in vector1, find closest value in vector2
cut(vector1, breaks=cuts, labels=vector2)

 [1] 3 3 3 3 5 5 8 8 8 11

Oto jak zinterpretować wynik:

  • Dla pierwszej wartości wektora 1 (1) najbliższą wartością wektora 2 jest 3 .
  • Dla drugiej wartości wektora 1 (2) najbliższą wartością wektora 2 jest 3 .
  • Dla trzeciej wartości wektora 1 (3) najbliższą wartością wektora 2 jest 3 .
  • Dla czwartej wartości wektora 1 (4) najbliższą wartością wektora 2 jest 3 .
  • Dla piątej wartości wektora 1 (5) najbliższą wartością wektora 2 jest 5 .

I tak dalej.

Uwaga : W tej metodzie zakłada się, że wartości drugiego wektora są ściśle rosnące. Jeśli jeszcze tego nie zrobiłeś, być może będziesz musiał najpierw posortować drugi wektor.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak obliczyć średnią na grupę w R
Jak uśredniać kolumny w R
Jak sumować określone kolumny w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *