rbind() in R : la fonction pour combiner des données dans des dataframes
Si vous avez des ensembles de données qui ont le même nombre de colonnes et que vous souhaitez simplement les disposer les uns en dessous des autres, alors vous devriez utiliser rbind()
en R.
À quoi sert la fonction rbind()
dans R ?
La fonction rbind()
en R est une méthode précieuse pour concaténer des données ligne par ligne. Une de ses principales applications est l’ajout de nouvelles informations à un dataframe existant. Par exemple, elle est particulièrement utile lorsque vous avez des données régulièrement mises à jour et que vous souhaitez les intégrer à un ensemble de données existant. Lors du traitement de données dans des boucles ou des processus itératifs, rbind()
permet de fusionner progressivement les résultats.
De plus, rbind()
est souvent utilisé pour combiner des dataframes ayant la même structure, que ce soit pour une analyse plus complète ou pour fusionner différentes parties d’un jeu de données en un ensemble de données global. Il convient de noter que bien que rbind()
soit efficace pour les petits ensembles de données, pour les grands ensembles de données, il est recommandé d’utiliser des packages tels que dplyr pour des performances accrues.
Voici à quoi ressemble la syntaxe de R rbind()
Vous pouvez spécifier autant de dataframes que vous le souhaitez comme paramètres de rbind()
afin de les combiner. L’important est que tous les dataframes aient le même nombre de colonnes et des types de données compatibles dans ces colonnes. Pour une combinaison sans erreurs, il est également recommandé d’avoir des noms de colonnes identiques.
rbind(data.frame1, data.frame2, ...)
RLes arguments data.frame1
, data.frame2
etc. représentent les dataframes ou les listes des dataframes qui doivent être combinés ligne par ligne.
Exemples d’utilisation de rbind()
dans R
Pour illustrer R rbind()
avec un exemple concret, nous allons d’abord créer un dataframe avec deux colonnes :
names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1
RLa sortie suivante correcte serait alors :
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurse
REnsuite, nous définissons un autre dataframe avec le même nombre de colonnes :
# Création du dataframe 2
names<-c("Eva","John")
status<-c("doctor","nurse")
df2<-data.frame(names, status)
df2
RSortie :
names status
1 Eva doctor
2 John nurse
RNous pouvons maintenant combiner les deux dataframes :
# Combinaison des lignes de df1 et df2
rbind(df1,df2)
RLe résultat est :
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurse
6 Eva doctor
7 John nurse
RCombiner des dataframes de longueurs différentes avec R rbind()
n’est pas possible
Dans ce qui suit, nous allons démontrer ce qui se passe lorsque nous combinons des dataframes avec un nombre différent de colonnes.
Nous créons d’abord à nouveau un dataframe avec deux colonnes :
# Création du dataframe 1
names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1
RSortie :
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurse
REnsuite, nous définissons un dataframe avec une troisième colonne supplémentaire :
# Création du dataframe 2
names<-c("Eva","John")
status<-c("doctor","nurse")
age<-c("52","38")
df2<-data.frame(names, status, age)
df2
RSortie :
names status age
1 Eva doctor 52
2 John nurse 38
RNous utilisons R rbind()
et obtenons le message d’erreur suivant :
rbind(df1,df2)
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not match
RL’erreur nous indique que nous ne pouvons pas utiliser rbind()
pour connecter les deux dataframes, car leur nombre de colonnes n’est pas égal. Pour éviter cela, nous pouvons utiliser bind_rows()
du package dplyr
.
Combiner des dataframes de longueurs différentes avec bind_rows()
Le problème rencontré dans l’exemple ci-dessus peut être facilement résolu avec bind_rows()
.
#install dplyr
install.packages('dplyr')
#import libraries
library(dplyr)
#bind rows
bind_rows(df1,df2)
RLa sortie suivante s’affiche :
names status age
1 Deborah nurse <NA>
2 Tom doctor <NA>
3 Matt nurse <NA>
4 Laura doctor <NA>
5 Rebecca nurse <NA>
6 Eva doctor 52
7 John nurse 38
RAvec bind_rows()
, nous pouvons relier avec succès les dataframes, et les champs vides sont marqués par <NA>
. Cette fonction est donc une bonne alternative à rbind()
dans R, lorsque le nombre de colonnes des dataframes n’est pas identique.
- Certificat SSL et protection DDoS
- Sauvegarde et restauration des données
- Assistance 24/7 et conseiller personnel