Verwendung der dist-Funktion in R (mit Beispielen)

Von Fabian
Kategorie: R
Lesezeit: 3 Minuten

Mit der Funktion dist() in R kann eine Distanzmatrix berechnet werden, die die Abstände zwischen den Zeilen einer Matrix oder eines Dataframes anzeigt.

Diese Funktion verwendet die folgende grundlegende Syntax:

dist(x, method=euclidean)

wo:

  • x: Der Name der Matrix oder des Dataframes.
  • method: Das zu verwendende Entfernungsmaß. Der Standardwert ist „euklidisch“, aber die Optionen umfassen „maximal“, „manhattan“, „canberra“, „binary“ oder „minkowski“.

Die folgenden Beispiele zeigen die praktische Anwendung dieser Funktion mit folgendem Dataframe:

#Vier Vektoren definieren
a <- c(2, 4, 4, 6)
b <- c(5, 5, 7, 8)
c <- c(9, 9, 9, 8)
d <- c(1, 2, 3, 3)

#rbind vier Vektoren in eine Matrix
mat <- rbind(a, b, c, d)

#Matrix ansehen
mat

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

Beispiel 1: Verwenden Sie dist(), um den euklidischen Abstand zu berechnen

Der euklidische Abstand zwischen zwei Vektoren, A und B, wird wie folgt berechnet:

Euklidischer Abstand = √Σ(Ai-Bi)2

Der folgende Code zeigt, wie eine Distanzmatrix berechnet wird, die die euklidische Distanz zwischen jeder Zeile einer Matrix in R anzeigt:

#Berechnen Sie den euklidischen Abstand zwischen jeder Zeile in der Matrix
dist(mat)

          a         b         c
b  4.795832                    
c 10.148892  6.000000          
d  3.872983  8.124038 13.190906

So interpretieren Sie die Ausgabe:

  • Der euklidische Abstand zwischen Reihe a und Reihe b beträgt 4,795832.
  • Der euklidische Abstand zwischen Reihe a und Reihe c beträgt 10,148892.
  • Der euklidische Abstand zwischen Reihe a und Reihe d beträgt 3,872983.
  • Der euklidische Abstand zwischen Reihe b und Reihe c beträgt 6.000000.
  • Der euklidische Abstand zwischen Reihe b und Reihe d beträgt 8,124038.
  • Der euklidische Abstand zwischen Reihe c und Reihe d beträgt 13,190906.

Beispiel 2: Verwenden Sie dist(), um die maximale Entfernung zu berechnen

Der maximale Abstand zwischen zwei Vektoren, A und B, wird als maximale Differenz zwischen beliebigen paarweisen Elementen berechnet.

Der folgende Code zeigt, wie eine Distanzmatrix berechnet wird, die den maximalen Abstand zwischen jeder Zeile einer Matrix in R anzeigt:

#Berechnen des maximalen Abstands zwischen jeder Zeile in der Matrix
dist(mat, method="maximum")

  a b c
b 3    
c 7 4  
d 3 5 8

Beispiel 3: Verwenden Sie dist(), um die Canberra-Distanz zu berechnen

Der Canberra-Abstand zwischen zwei Vektoren, A und B, wird wie folgt berechnet:

Canberra-Abstand = Σ |A i -B i | / |A i | + |B i |

Der folgende Code zeigt, wie eine Distanzmatrix berechnet wird, die die Canberra-Distanz zwischen jeder Zeile einer Matrix in R anzeigt:

#Berechnen Sie den Canberra-Abstand zwischen jeder Zeile in der Matrix
dist(mat, method="canberra")

          a         b         c
b 0.9552670                    
c 1.5484515 0.6964286          
d 1.1428571 1.9497835 2.3909091

Beispiel 4: Verwenden Sie dist(), um die binäre Distanz zu berechnen

Der binäre Abstand zwischen zwei Vektoren, A und B, wird als Anteil der Elemente berechnet, die die beiden Vektoren gemeinsam haben.

Der folgende Code zeigt, wie eine Distanzmatrix berechnet wird, die die binäre Distanz zwischen jeder Zeile einer Matrix in R anzeigt:

#berechnen Sie den binären Abstand zwischen jeder Zeile in der Matrix
dist(mat, method="binary")

  a b c
b 0    
c 0 0  
d 0 0 0

Beispiel 5: Verwenden Sie dist(), um die Minkowski-Distanz zu berechnen

Der Minkowski-Abstand zwischen zwei Vektoren, A und B, wird wie folgt berechnet:

Minkowski-Abstand = (Σ|a i – b i | p ) 1/p

wobei i das i-te Element in jedem Vektor ist und p eine ganze Zahl ist.

Der folgende Code zeigt, wie eine Distanzmatrix berechnet wird, die den Minkowski-Abstand (mit p=3) zwischen jeder Zeile einer Matrix in R anzeigt:

#Berechnen Sie den Minkowski-Abstand zwischen jeder Zeile in der Matrix
dist(mat, method="minkowski", p=3)

          a         b         c
b  3.979057                    
c  8.439010  5.142563          
d  3.332222  6.542133 10.614765

Zusätzliche Ressourcen

So berechnen Sie die Jaccard-Ähnlichkeit in R
So berechnen Sie die Kosinus-Ähnlichkeit in R
Berechnung des Skalarprodukts in R

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: