Comment combiner deux blocs de données dans R avec des colonnes différentes
Vous pouvez utiliser la fonction bind_rows() du package dplyr dans R pour combiner rapidement deux blocs de données comportant des colonnes différentes :
library(dplyr)
bind_rows(df1, df2)
L’exemple suivant montre comment utiliser cette fonction dans la pratique.
Exemple : combiner deux blocs de données avec des colonnes différentes
Supposons que nous ayons les deux trames de données suivantes dans R :
#define first data frame
df1 <- data.frame(A=c(1, 6, 3, 7, 5),
B=c(7, 9, 8, 3, 2),
C=c(3, 5, 2, 9, 9))
df1
A B C
1 1 7 3
2 6 9 5
3 3 8 2
4 7 3 9
5 5 2 9
#define second data frame
df2 <- data.frame(B=c(1, 3, 3, 4, 5),
C=c(7, 7, 8, 3, 2),
D=c(3, 3, 6, 6, 8))
df2
B C D
1 1 7 3
2 3 7 3
3 3 8 6
4 4 3 6
5 5 2 8
Notez que df1 a les noms de colonnes suivants :
- UN
- B
- C
Et notez que df2 a les noms de colonnes suivants :
- B
- C
- D
Les noms de colonnes ne correspondent pas, donc la fonction rbind() dans R générera une erreur si nous essayons de l’utiliser.
#attempt to use rbind to row bind data frames
rbind(df1, df2)
Error in match.names(clabs, names(xi)) :
names do not match previous names
Au lieu de cela, nous pouvons utiliser la fonction bind_rows() du package dplyr pour combiner ces deux trames de données et simplement remplir les valeurs manquantes dans la trame de données résultante avec des valeurs NA :
library(dplyr)
#combine df1 and df2
bind_rows(df1, df2)
A B C D
1 1 7 3 NA
2 6 9 5 NA
3 3 8 2 NA
4 7 3 9 NA
5 5 2 9 NA
6 NA 1 7 3
7 NA 3 7 3
8 NA 3 8 6
9 NA 4 3 6
10 NA 5 2 8
Ressources additionnelles
Comment combiner deux colonnes en une seule dans R
Comment empiler des colonnes de blocs de données dans R