A: come unire i frame di dati in base ai nomi delle colonne
È possibile utilizzare i seguenti metodi per unire i frame di dati in base ai nomi delle colonne in R:
Metodo 1: unione in base al nome di una colonna corrispondente
merge(df1, df2, by=' var1 ')
Metodo 2: unione in base al nome della colonna senza corrispondenza
merge(df1, df2, by. x = ' var1 ', by. y = ' variable1 ')
Metodo 3: unione in base a più nomi di colonne corrispondenti
merge(df1, df2, by=c(' var1 ', ' var2 '))
Metodo 4: unione in base a più nomi di colonne senza corrispondenza
merge(df1, df2, by. x =c(' var1 ', ' var2 '), by. y =c(' variable1 ', ' variable2 '))
Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.
Esempio 1: unione in base al nome della colonna corrispondente
Il codice seguente mostra come unire due frame di dati in R in base a un nome di colonna corrispondente:
#define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
dots=c(88, 98, 104, 100))
df2 <- data. frame (team=c('A', 'B', 'C', 'D'),
rebounds=c(22, 31, 29, 20))
#merge based on one column with matching name
merge(df1, df2, by=' team ')
team points rebounds
1 A 88 22
2 B 98 31
3 C 104 29
4 D 100 20
Il risultato è un frame di dati che corrisponde alle righe in ciascun frame di dati utilizzando la colonna del team .
Esempio 2: unione in base al nome di colonna senza corrispondenza
Il codice seguente mostra come unire due frame di dati in R in base a un nome di colonna senza corrispondenza:
#define data frames
df1 <- data. frame (team=c('A', 'B', 'C', 'D'),
dots=c(88, 98, 104, 100))
df2 <- data. frame (team_name=c('A', 'B', 'C', 'D'),
rebounds=c(22, 31, 29, 20))
#merge based on one column with unmatched name
merge(df1, df2, by. x = ' team ', by. y = ' team_name ')
team points rebounds
1 A 88 22
2 B 98 31
3 C 104 29
4 D 100 20
Il risultato è un frame di dati che abbina le righe utilizzando la colonna team nel primo frame di dati e la colonna team_name nel secondo frame di dati.
Esempio 3: unione in base a più nomi di colonne corrispondenti
Il codice seguente mostra come unire due frame di dati in R in base a più nomi di colonne corrispondenti:
#define data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
position=c('G', 'F', 'G', 'F'),
dots=c(88, 98, 104, 100))
df2 <- data. frame (team=c('A', 'A', 'B', 'B'),
position=c('G', 'F', 'G', 'F'),
rebounds=c(22, 31, 29, 20))
#merge based on multiple columns with matching names
merge(df1, df2, by=c(' team ', ' position '))
team position points rebounds
1 AF 98 31
2 AG 88 22
3 BF 100 20
4 BG 104 29
Il risultato è un frame di dati che corrisponde alle righe in ciascun frame di dati utilizzando la colonna squadra e posizione in ciascun frame di dati.
Esempio 4: unione basata su più nomi di colonne senza corrispondenza
Il codice seguente mostra come unire due frame di dati in R in base a più nomi di colonne non corrispondenti:
#define data frames
df1 <- data. frame (team=c('A', 'A', 'B', 'B'),
position=c('G', 'F', 'G', 'F'),
dots=c(88, 98, 104, 100))
df2 <- data. frame (team_name=c('A', 'A', 'B', 'B'),
position_name=c('G', 'F', 'G', 'F'),
rebounds=c(22, 31, 29, 20))
#merge based on multiple columns with matching names
merge(df1, df2, by. x =c(' team ', ' position '), by. y =c(' team_name ', ' position_name '))
team position points rebounds
1 AF 98 31
2 AG 88 22
3 BF 100 20
4 BG 104 29
Il risultato è un frame di dati che abbina le righe utilizzando le colonne team e position nel primo frame di dati e le colonne team_name e position_name nel secondo frame di dati.
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 un inner join in R
Come eseguire una CERCA.VERT in R
Come aggiungere righe al frame di dati in R