Jak korzystać z funkcji dist w r (z przykładami)
Funkcji dist() w języku R można użyć do obliczenia macierzy odległości, która wyświetla odległości między wierszami w macierzy lub ramce danych.
Ta funkcja wykorzystuje następującą podstawową składnię:
dist(x, metoda=”euklidesowa”)
Złoto:
- x: nazwa macierzy lub bloku danych.
- metoda: Stosowany pomiar odległości. Wartość domyślna to „Euklidesowa”, ale dostępne opcje obejmują „maksymalny”, „manhattan”, „canberra”, „binarny” lub „minkowski”.
Poniższe przykłady pokazują, jak w praktyce wykorzystać tę funkcję z następującą ramką danych:
#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
Przykład 1: Użyj dist() do obliczenia odległości euklidesowej
Odległość euklidesową między dwoma wektorami A i B oblicza się w następujący sposób:
Odległość euklidesowa = √ Σ(A i -B i ) 2
Poniższy kod pokazuje, jak obliczyć macierz odległości, która pokazuje odległość euklidesową pomiędzy każdym wierszem macierzy w 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
Oto jak zinterpretować wynik:
- Odległość euklidesowa między linią a i b wynosi 4,795832 .
- Odległość euklidesowa między linią a i linią c wynosi 10,148892 .
- Odległość euklidesowa między linią a i linią d wynosi 3,872983 .
- Odległość euklidesowa pomiędzy linią b i linią c wynosi 6,000000 .
- Odległość euklidesowa między linią b i linią d wynosi 8,124038 .
- Odległość euklidesowa pomiędzy linią c i linią d wynosi 13,190906 .
Przykład 2: Użyj dist() do obliczenia maksymalnej odległości
Maksymalna odległość między dwoma wektorami A i B jest obliczana jako maksymalna różnica między wszystkimi elementami parami.
Poniższy kod pokazuje, jak obliczyć macierz odległości, która wyświetla maksymalną odległość między każdym wierszem macierzy w R:
#calculate Maximum distance between each row in matrix dist(mat, method=" maximum ") ABC b 3 c 7 4 d 3 5 8
Przykład 3: Użyj dist() do obliczenia odległości od Canberry
Odległość Canberry pomiędzy dwoma wektorami A i B oblicza się w następujący sposób:
Odległość od Canberry = Σ |A i -B i | / | sztuczna inteligencja | + | Bje |
Poniższy kod pokazuje, jak obliczyć macierz odległości, która pokazuje odległość Canberry pomiędzy każdym wierszem macierzy w 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
Przykład 4: Użyj dist() do obliczenia odległości binarnej
Odległość binarna między dwoma wektorami A i B jest obliczana jako proporcja elementów wspólnych dla tych dwóch wektorów.
Poniższy kod pokazuje, jak obliczyć macierz odległości, która pokazuje binarną odległość pomiędzy każdym wierszem macierzy w R:
#calculate Binary distance between each row in matrix dist(mat, method=" binary ") ABC b 0 c 0 0 d 0 0 0
Przykład 5: Użyj dist() do obliczenia odległości Minkowskiego
Odległość Minkowskiego pomiędzy dwoma wektorami A i B oblicza się w następujący sposób:
Odległość Minkowskiego = (Σ|a i – b i | p ) 1/p
gdzie i jest i- tym elementem każdego wektora, a p jest liczbą całkowitą.
Poniższy kod pokazuje, jak obliczyć macierz odległości, która pokazuje odległość Minkowskiego (stosując p=3) pomiędzy każdym wierszem macierzy w 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
Dodatkowe zasoby
Jak obliczyć podobieństwo Jaccarda w R
Jak obliczyć podobieństwo cosinus w R
Jak obliczyć iloczyn skalarny w R