R : Comment fusionner des blocs de données par noms de colonnes
Vous pouvez utiliser les méthodes suivantes pour fusionner des blocs de données par noms de colonnes dans R :
Méthode 1 : fusionner en fonction d’un nom de colonne correspondant
merge(df1, df2, by='var1')
Méthode 2 : fusionner sur la base d’un nom de colonne sans correspondance
merge(df1, df2, by.x='var1', by.y='variable1')
Méthode 3 : fusionner en fonction de plusieurs noms de colonnes correspondants
merge(df1, df2, by=c('var1', 'var2'))
Méthode 4 : fusionner en fonction de plusieurs noms de colonnes sans correspondance
merge(df1, df2, by.x=c('var1', 'var2'), by.y=c('variable1', 'variable2'))
Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.
Exemple 1 : Fusion basée sur un nom de colonne correspondant
Le code suivant montre comment fusionner deux trames de données dans R en fonction d’un nom de colonne correspondant :
#define data frames
df1 <- data.frame(team=c('A', 'B', 'C', 'D'),
points=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
Le résultat est un bloc de données correspondant aux lignes de chaque bloc de données à l’aide de la colonne d’équipe .
Exemple 2 : Fusion basée sur un nom de colonne sans correspondance
Le code suivant montre comment fusionner deux trames de données dans R en fonction d’un nom de colonne sans correspondance :
#define data frames
df1 <- data.frame(team=c('A', 'B', 'C', 'D'),
points=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
Le résultat est un bloc de données qui correspond aux lignes en utilisant la colonne team dans le premier bloc de données et la colonne team_name dans le deuxième bloc de données.
Exemple 3 : Fusion basée sur plusieurs noms de colonnes correspondants
Le code suivant montre comment fusionner deux trames de données dans R en fonction de plusieurs noms de colonnes correspondant :
#define data frames
df1 <- data.frame(team=c('A', 'A', 'B', 'B'),
position=c('G', 'F', 'G', 'F'),
points=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 A F 98 31
2 A G 88 22
3 B F 100 20
4 B G 104 29
Le résultat est un bloc de données qui correspond aux lignes de chaque bloc de données en utilisant la colonne d’équipe et de position dans chaque bloc de données.
Exemple 4 : Fusion basée sur plusieurs noms de colonnes sans correspondance
Le code suivant montre comment fusionner deux trames de données dans R en fonction de plusieurs noms de colonnes sans correspondance :
#define data frames
df1 <- data.frame(team=c('A', 'A', 'B', 'B'),
position=c('G', 'F', 'G', 'F'),
points=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 A F 98 31
2 A G 88 22
3 B F 100 20
4 B G 104 29
Le résultat est un bloc de données qui correspond aux lignes en utilisant les colonnes team et position dans le premier bloc de données et les colonnes team_name et position_name dans le deuxième bloc de données.
Ressources additionnelles
Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes liées aux trames de données dans R :
Comment faire une jointure à gauche dans R
Comment faire une jointure interne dans R
Comment effectuer une RECHERCHEV dans R
Comment ajouter des lignes au bloc de données dans R