Come utilizzare la funzione dist in r (con esempi)


La funzione dist() in R può essere utilizzata per calcolare una matrice di distanza, che visualizza le distanze tra le righe in una matrice o frame di dati.

Questa funzione utilizza la seguente sintassi di base:

dist(x, metodo=”Euclideo”)

Oro:

  • x: il nome della matrice o del blocco dati.
  • metodo: la misurazione della distanza da utilizzare. Il valore predefinito è “euclideo”, ma le opzioni includono “massimo”, “manhattan”, “canberra”, “binario” o “minkowski”.

I seguenti esempi mostrano come utilizzare in pratica questa funzione con il seguente frame di dati:

 #define four vectors
a <- c(2, 4, 4, 6)
b <- c(5, 5, 7, 8)
c <- c(9, 9, 9, 8)
d <- c(1, 2, 3, 3)

#row bind four vectors into matrix
mat <- rbind(a, b, c, d)

#view matrix
mast

  [,1] [,2] [,3] [,4]
a 2 4 4 6
b 5 5 7 8
c 9 9 9 8
d 1 2 3 3

Esempio 1: utilizzare dist() per calcolare la distanza euclidea

La distanza euclidea tra due vettori A e B si calcola come segue:

Distanza euclidea = √ Σ(A i -B i ) 2

Il codice seguente mostra come calcolare una matrice di distanza che mostra la distanza euclidea tra ciascuna riga di una matrice in R:

 #calculate Euclidean distance between each row in matrix
dist(mat)

          ABC
b4.795832                    
c 10.148892 6.000000          
d 3.872983 8.124038 13.190906

Ecco come interpretare il risultato:

  • La distanza euclidea tra la linea a e la linea b è 4.795832 .
  • La distanza euclidea tra la linea a e la linea c è 10,148892 .
  • La distanza euclidea tra la linea a e la linea d è 3,872983 .
  • La distanza euclidea tra la linea b e la linea c è 6.000000 .
  • La distanza euclidea tra la linea b e la linea d è 8.124038 .
  • La distanza euclidea tra la linea c e la linea d è 13.190906 .

Esempio 2: utilizzare dist() per calcolare la distanza massima

La distanza massima tra due vettori, A e B, viene calcolata come la differenza massima tra tutti gli elementi a coppie.

Il codice seguente mostra come calcolare una matrice di distanza che visualizza la distanza massima tra ciascuna riga di una matrice in R:

 #calculate Maximum distance between each row in matrix
dist(mat, method=" maximum ")

  ABC
b 3    
c 7 4  
d 3 5 8

Esempio 3: utilizzare dist() per calcolare la distanza da Canberra

La distanza di Canberra tra due vettori A e B viene calcolata come segue:

Distanza da Canberra = Σ |A i -B i | / | AI | + | Bje |

Il codice seguente mostra come calcolare una matrice di distanza che mostra la distanza di Canberra tra ciascuna riga di una matrice in R:

 #calculate Canberra distance between each row in matrix
dist(mat, method=" canberra ")

          ABC
b 0.9552670                    
c 1.5484515 0.6964286          
d 1.1428571 1.9497835 2.3909091

Esempio 4: utilizzare dist() per calcolare la distanza binaria

La distanza binaria tra due vettori, A e B, viene calcolata come la proporzione di elementi condivisi dai due vettori.

Il codice seguente mostra come calcolare una matrice di distanza che mostra la distanza binaria tra ciascuna riga di una matrice in R:

 #calculate Binary distance between each row in matrix
dist(mat, method=" binary ")

  ABC
b 0    
c 0 0  
d 0 0 0

Esempio 5: utilizzare dist() per calcolare la distanza di Minkowski

La distanza di Minkowski tra due vettori A e B si calcola come segue:

Distanza di Minkowski = (Σ|a i – b i | p ) 1/p

dove i è l’i- esimo elemento di ciascun vettore e p è un numero intero.

Il codice seguente mostra come calcolare una matrice di distanza che mostra la distanza di Minkowski (usando p=3) tra ciascuna riga di una matrice in R:

 #calculate Minkowski distance between each row in matrix
dist(mat, method=" minkowski ", p= 3 )

          ABC
b 3.979057                    
c 8.439010 5.142563          
d 3.332222 6.542133 10.614765

Risorse addizionali

Come calcolare la somiglianza di Jaccard in R
Come calcolare la somiglianza del coseno in R
Come calcolare il prodotto scalare in R

Aggiungi un commento

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