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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *