A: come unire frame di dati in base a più colonne


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

 merge(df1, df2, by. x =c(' col1 ', ' col2 '), by. y =c(' col1 ', ' col2 '))

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

Esempio: unisci blocchi di dati su più colonne

Supponiamo di avere i seguenti due frame di dati in R:

 #define data frames
df1 = data. frame (playerID=c(1, 2, 3, 4, 5, 6),
                 team=c('A', 'B', 'B', 'B', 'C', 'C'),
                 dots=c(19, 22, 25, 29, 34, 39))

df2 = data. frame (playerID=c(1, 2, 3, 4),
                 tm=c('A', 'B', 'B', 'B'),
                 rebounds=c(7, 8, 8, 14))

#view first data frame
df1

  playerID team points
1 1 A 19
2 2 B 22
3 3 B 25
4 4 B 29
5 5 C 34
6 6 C 39

#view second data frame
df2 

  playerID tm rebounds
1 1 To 7
2 2 B 8
3 3 B 8
4 4 B 14

Tieni presente che entrambi i frame di dati condividono la colonna playerID , ma le colonne della squadra hanno nomi diversi in ciascun frame di dati:

  • Il primo frame di dati ha la colonna “ team ”.
  • Il secondo frame di dati ha la colonna ‘ tm

Per unire questi frame di dati in base alle colonne playerID e team, dobbiamo utilizzare gli argomenti by.x e by.y.

Possiamo usare il seguente codice per eseguire questa unione:

 #merge two data frames
merged = merge(df1, df2, by. x =c(' playerID ', ' team '), by. y =c(' playerID ', ' tm '))

#view merged data frame
merged

  playerID team points rebounds
1 1 A 19 7
2 2 B 22 8
3 3 B 25 8
4 4 B 29 14

Il frame di dati finale unito contiene i dati per tutti e quattro i lettori che appartengono ai due frame di dati originali.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre funzioni comuni dei frame di dati in R:

Come eseguire un join a sinistra in R
Come eseguire una CERCA.VERT in R
Come aggiungere righe al frame di dati in R

Aggiungi un commento

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