So führen sie einen vlookup (ähnlich wie excel) in r durch


Mit der SVERWEIS- Funktion in Excel können Sie einen Wert in einer Tabelle finden, indem Sie ihn einer Spalte zuordnen.

In der folgenden Excel-Tabelle können wir beispielsweise nach dem Teamnamen eines Spielers suchen, indem wir SVERWEIS verwenden, um den Namen des Spielers abzugleichen und das Team des Spielers zurückzugeben:

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

Verwendung 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.

VLOOKUP mit Base R

Der folgende Code zeigt, wie man mit der Funktion merge() eine VLOOKUP-ähnliche Funktion in Basis-R ausführt:

 #create first data frame
df1 <- data.frame(player= LETTERS [1:15],
                  team= rep (c(' Mavs ', ' Lakers ', ' Rockets '), each =5))

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

#merge the two data frames
merge(df1, df2, by=" player ")

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

Beachten Sie, dass dies dieselben Ergebnisse zurückgibt wie die VLOOKUP-Funktion im Einführungsbeispiel. Beachten Sie außerdem, dass Sie mithilfe des Arguments by mehrere Spalten zum Zusammenführen angeben können.

SVERWEIS mit dplyr

 library (dplyr)

#create first data frame
df1 <- data.frame(player= LETTERS [1:15],
                  team= rep (c(' Mavs ', ' Lakers ', ' Rockets '), each =5))

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

#merge the two data frames using inner_join
inner_join(df1, df2, by=" player ")

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

Beachten Sie, dass dies dieselben Ergebnisse zurückgibt wie die SVERWEIS-Funktion in Excel. Beachten Sie außerdem, dass Sie mithilfe des Arguments by mehrere Spalten zum Zusammenführen angeben können.

Wenn Sie außerdem möchten, dass Nichtübereinstimmungen angezeigt werden, können Sie die Funktion left_join verwenden.

Zusätzliche Ressourcen

So berechnen Sie kumulative Summen in R
So standardisieren Sie Daten in R
So fügen Sie Zeilen zu einem Datenrahmen in R hinzu

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert