So führen Sie einen SVERWEIS (ähnlich wie in Excel) in R durch

Von Fabian
Kategorie: R
Tags: Operationen
Lesezeit: 3 Minuten

Mit der SVERWEIS-Funktion in Excel können Sie einen Wert in einer Tabelle nachschlagen, indem Sie eine Spalte abgleichen.

Im folgenden Excel-Arbeitsblatt können wir beispielsweise den Teamnamen eines Spielers nachschlagen, indem wir mit dem SVERWEIS den Spielernamen abgleichen und das Team des Spielers zurückgeben:

SVERWEIS R

Wir können diese Funktion mit Base R oder dem dplyr-Paket replizieren:

Verwenden von Base R:

merge(df1, df2, by="merge_column")

Mit dplyr:

inner_join(df1, df2, by="merge_column")

Die folgenden Beispiele zeigen, wie Sie jede dieser Funktionen in R verwenden, um die SVERWEIS-Funktion aus Excel zu replizieren.

SVERWEIS mit Base R

Der folgende Code zeigt, wie eine Funktion ähnlich wie SVERWEIS in Basis R mithilfe der Funktion merge() ausgeführt wird:

#Erstellen Sie das erste Dataframe
df1 <- data.frame(player=LETTERS[1:15],
                  team=rep(c('Mavs', 'Lakers', 'Rockets'), each=5))

#Zweites Dataframe erstellen 
df2 <- data.frame(player=LETTERS[1:15],
                  points=c(14, 15, 15, 16, 8, 9, 16, 27, 30, 24, 14, 19, 8, 6, 5))

#Zusammenführen der beiden Dataframes
merge(df1, df2, by="player")

   player    team points
1       A    Mavs     14
2       B    Mavs     15
3       C    Mavs     15
4       D    Mavs     16
5       E    Mavs      8
6       F  Lakers      9
7       G  Lakers     16
8       H  Lakers     27
9       I  Lakers     30
10      J  Lakers     24
11      K Rockets     14
12      L Rockets     19
13      M Rockets      8
14      N Rockets      6
15      O Rockets      5

Beachten Sie, dass dies die gleichen Ergebnisse wie die SVERWEIS-Funktion aus dem Einführungsbeispiel zurückgibt. Beachten Sie auch, dass Sie mit dem Argument by mehrere Spalten angeben können, die zusammengeführt werden sollen.

SVERWEIS mit dplyr

library(dplyr)

#Erstellen Sie das erste Dataframe
df1 <- data.frame(player=LETTERS[1:15],
                  team=rep(c('Mavs', 'Lakers', 'Rockets'), each=5))

#Zweites Dataframe erstellen 
df2 <- data.frame(player=LETTERS[1:15],
                  points=c(14, 15, 15, 16, 8, 9, 16, 27, 30, 24, 14, 19, 8, 6, 5))

#Verbinden Sie die beiden Dataframes mit inner_join
inner_join(df1, df2, by="player")

   player    team points
1       A    Mavs     14
2       B    Mavs     15
3       C    Mavs     15
4       D    Mavs     16
5       E    Mavs      8
6       F  Lakers      9
7       G  Lakers     16
8       H  Lakers     27
9       I  Lakers     30
10      J  Lakers     24
11      K Rockets     14
12      L Rockets     19
13      M Rockets      8
14      N Rockets      6
15      O Rockets      5

Beachten Sie, dass dies die gleichen Ergebnisse wie die SVERWEIS-Funktion in Excel zurückgibt. Beachten Sie auch, dass Sie mit dem Argument by mehrere Spalten angeben können, die zusammengeführt werden sollen.

Wenn Sie möchten, dass Nicht-Übereinstimmungen angezeigt werden, können Sie stattdessen die Funktion left_join verwenden.

Zusätzliche Ressourcen

So berechnen Sie kumulative Summen in R
So standardisieren Sie Daten in R
So hängen Sie Zeilen an ein Dataframe in R

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: