A: come trovare il valore più vicino in un vettore


È possibile utilizzare la seguente sintassi di base per trovare il valore più vicino tra gli elementi di due vettori in R:

 #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)

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: trovare il valore più vicino in un vettore in R

Supponiamo di avere i seguenti due vettori in R:

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

Supponiamo ora che per ogni valore nel primo vettore si voglia trovare il valore più vicino nel secondo vettore.

Possiamo usare la seguente sintassi per fare questo:

 #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

Ecco come interpretare il risultato:

  • Per il primo valore di vector1 (1), il valore più vicino a vector2 è 3 .
  • Per il secondo valore di vector1 (2), il valore più vicino a vector2 è 3 .
  • Per il terzo valore di vector1 (3), il valore più vicino a vector2 è 3 .
  • Per il quarto valore di vector1 (4), il valore più vicino a vector2 è 3 .
  • Per il quinto valore di vector1 (5), il valore più vicino a vector2 è 5 .

E così via.

Nota : questo metodo presuppone che i valori del secondo vettore siano strettamente crescenti. Se non lo hai già fatto, potrebbe essere necessario prima ordinare il secondo vettore.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come calcolare la media per gruppo in R
Come calcolare la media sulle colonne in R
Come sommare colonne specifiche in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *