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