Come unire frame di dati su più colonne utilizzando dplyr


È possibile utilizzare la seguente sintassi di base per unire frame di dati in R in base a più colonne utilizzando dplyr:

 library (dplyr)

left_join(df1, df2, by=c(' x1 '=' x2 ', ' y1 '=' y2 '))

Questa particolare sintassi eseguirà un left join quando sono vere le seguenti condizioni:

  • Il valore nella colonna x1 di df1 corrisponde al valore nella colonna x2 di df2.
  • Il valore della colonna y1 di df1 corrisponde al valore della colonna y2 di df2.

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: unisci più colonne utilizzando dplyr

Supponiamo di avere i seguenti due frame di dati 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

Possiamo usare la seguente sintassi in dplyr per eseguire un left join basato su due colonne:

 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

Il frame di dati risultante contiene tutte le righe di df1 e solo le righe di df2 in cui i valori di squadra e posizione corrispondono.

Tieni inoltre presente che se entrambi i frame di dati condividono gli stessi nomi di colonna, puoi semplicemente utilizzare la seguente sintassi per unire più colonne:

 library (dplyr)

#perform left join based on multiple columns
df3 <- left_join(df1, df2, by=c(' team ', ' position '))

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in R:

Come eseguire un join a sinistra in R
Come eseguire un join destro in R
Come eseguire un inner join in R
Come eseguire un join esterno in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *