So verbinden sie datenrahmen über mehrere spalten hinweg mit dplyr
Sie können die folgende grundlegende Syntax verwenden, um Datenrahmen in R basierend auf mehreren Spalten mit dplyr zu verbinden:
library (dplyr) left_join(df1, df2, by=c(' x1 '=' x2 ', ' y1 '=' y2 '))
Diese spezielle Syntax führt eine Linksverknüpfung durch, wenn die folgenden Bedingungen erfüllt sind:
- Der Wert in Spalte x1 von df1 stimmt mit dem Wert in Spalte x2 von df2 überein.
- Der Wert der Spalte y1 von df1 entspricht dem Wert der Spalte y2 von df2.
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Mehrere Spalten mit dplyr verbinden
Angenommen, wir haben die folgenden zwei Datenrahmen in R:
#define first data frame df1 = data. frame (team=c('A', 'A', 'B', 'B'), pos=c('G', 'F', 'F', 'G'), dots=c(18, 22, 19, 14)) df1 team pos points 1 AG 18 2 AF 22 3 BF 19 4 BG 14 #define second data frame df2 = data. frame (team_name=c('A', 'A', 'B', 'C', 'C'), position=c('G', 'F', 'F', 'G', 'F'), assists=c(4, 9, 8, 6, 5)) df2 team_name position assists 1 GA 4 2 AF 9 3 BF 8 4 CG 6 5 CF 5
Wir können die folgende Syntax in dplyr verwenden, um einen Links-Join basierend auf zwei Spalten durchzuführen:
library (dplyr) #perform left join based on multiple columns df3 <- left_join(df1, df2, by=c(' team '=' team_name ', ' pos '=' position ')) #view result df3 team pos points assists 1 AG 18 4 2 AF 22 9 3 BF 19 8 4 BG 14 NA
Der resultierende Datenrahmen enthält alle Zeilen von df1 und nur Zeilen von df2 , in denen die Team- und Positionswerte übereinstimmen.
Beachten Sie außerdem, dass Sie, wenn beide Datenrahmen dieselben Spaltennamen haben, einfach die folgende Syntax verwenden können, um mehrere Spalten zu verbinden:
library (dplyr) #perform left join based on multiple columns df3 <- left_join(df1, df2, by=c(' team ', ' position '))
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in R ausgeführt werden:
So führen Sie eine Linksverknüpfung in R durch
So führen Sie einen Right Join in R durch
So führen Sie einen Inner Join in R durch
So führen Sie einen Outer-Join in R durch