Jak połączyć ramki danych w wielu kolumnach za pomocą dplyr
Możesz użyć następującej podstawowej składni, aby połączyć ramki danych w R w oparciu o wiele kolumn za pomocą dplyr:
library (dplyr) left_join(df1, df2, by=c(' x1 '=' x2 ', ' y1 '=' y2 '))
Ta konkretna składnia wykona lewe złączenie, jeśli spełnione są następujące warunki:
- Wartość w kolumnie x1 df1 odpowiada wartości w kolumnie x2 df2.
- Wartość kolumny y1 df1 odpowiada wartości kolumny y2 df2.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: połącz wiele kolumn za pomocą dplyr
Załóżmy, że mamy w R następujące dwie ramki danych:
#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
Możemy użyć następującej składni w dplyr, aby wykonać lewe złączenie na podstawie dwóch kolumn:
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
Wynikowa ramka danych zawiera wszystkie wiersze z df1 i tylko wiersze z df2 , w których pasują wartości zespołu i pozycji.
Należy również pamiętać, że jeśli obie ramki danych mają te same nazwy kolumn, można po prostu użyć następującej składni, aby połączyć wiele kolumn:
library (dplyr) #perform left join based on multiple columns df3 <- left_join(df1, df2, by=c(' team ', ' position '))
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w języku R:
Jak wykonać lewe złączenie w R
Jak wykonać prawidłowe połączenie w R
Jak wykonać złączenie wewnętrzne w R
Jak wykonać złączenie zewnętrzne w R