La liaison ou la combinaison des lignes est très facile avec la fonction rbind() en R.
rbind() signifie liaison par lignes. En termes simples, il s’agit de joindre plusieurs lignes pour former un lot unique. Cela peut inclure la fusion de deux dataframes, de vecteurs, et plus encore.
Cet article traitera des utilisations et des applications de la fonction rbind() en programmation R.
Sans perdre plus de temps, plongeons dans le sujet !!!
Syntaxe de la fonction rbind()
rbind(): La fonction rbind, ou liaison par lignes, est utilisée pour lier ou combiner plusieurs groupes de lignes ensemble.
rbind(x,x1)
Où:
- X = the input data.
- X1 = Les données à lier.
L’idée de lier les lignes avec rbind()
L’idée de lier ou de combiner les lignes de plusieurs dataframes est très bénéfique en manipulation de données.
Le diagramme ci-dessous vous donnera certainement une idée du fonctionnement de la fonction rbind().
Vous pouvez voir comment les lignes de différents dataframes seront liées/ combinées par la fonction rbind().
Mise en œuvre de la fonction rbind() en R
Comme vous le savez, la fonction rbind() en R est utilisée pour lier les lignes de différents groupes de données.
Dans cette section, essayons de construire des dataframes simples et de les lier en utilisant la fonction rbind().
# création d'un dataframe
Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)
df1
Le code ci-dessus va construire un simple dataframe présentant les détails et les noms des étudiants.
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
Eh bien, maintenant nous avons un dataframe de 5 lignes. Créons un autre dataframe.
# création d'un dataframe
Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)
df2
Student_class Student_details
1 High school Bracy
2 College Evin
Eh bien, maintenant nous avons 2 dataframes de différents nombres de lignes (df1 et df2). Utilisons la fonction rbind() pour lier les 2 dataframes ci-dessus en un seul dataframe.
Voyons comment cela fonctionne.
Vous ne croirez pas que tout le processus de liaison ne nécessitera qu’une seule ligne de code.
# lie les lignes des 2 dataframes d'entrée
rbind(df1,df2)
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
6 High school Bracy
7 College Evin
Le dataframe résultant sera une version liée des deux dataframes, comme indiqué dans la sortie ci-dessus.
Lier deux cadres de données de longueurs différentes à l’aide de la fonction bind()
Eh bien, dans la section précédente, nous avons combiné les deux groupes de lignes ensemble.
Dans cette section, nous allons combiner deux ensembles de données en utilisant la fonction rbind en R.
#crée le cadre de données
Student_details<-c("Mark","John","Fredrick","Floyd","George")
Student_class<-c("High school","College","High school","High school","College")
df1<-data.frame(Student_class,Student_details)
df1
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
#crée le cadre de données
Student_details<-c("Bracy","Evin")
Student_class<-c("High school","College")
Student_rank<-c("A","A+")
df2<-data.frame(Student_class,Student_details,Student_rank)
df2
Student_class Student_details Student_rank
1 High school Bracy A
2 College Evin A+
rbind(df1,df2)
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not match
Oh attendez, qu’est-ce qui se passe? Pourquoi la fonction renvoie-t-elle une erreur?
Si vous lisez les lignes dans l’erreur, elle indique que le nombre de colonnes ne correspond pas.
Nous avons 2 colonnes dans ‘df1’ et 3 colonnes dans ‘df2’.
Pas de soucis! nous avons la fonction bind_rows() qui nous aidera dans ces scénarios.
La fonction bind_rows() pour lier des ensembles de données inégaux
bind_rows() est une fonction qui fait partie du package dplyr. Nous devons d’abord importer le package dplyr pour exécuter cette fonction.
Nous utilisons les mêmes cadres de données présents dans la section ci-dessus, c’est-à-dire df1 et df2. Voyons comment cela fonctionne.
# installer les paquets nécessaires
install.packages('dplyr')
# importer les bibliothèques
library(dplyr)
# lier les lignes
bind_rows(df1,df2)
Student_class Student_details Student_rank
1 High school Mark <NA>
2 College John <NA>
3 High school Fredrick <NA>
4 High school Floyd <NA>
5 College George <NA>
6 High school Bracy A
7 College Evin A+
Vous pouvez maintenant voir que la fonction bind_rows a combiné ces deux ensembles de données inégaux en termes de colonnes. Les espaces vides seront marqués comme <NA>.
Liaison de deux ensembles de données à l’aide de la fonction rbind()
Dans cette section, nous examinerons la liaison de deux ensembles de données entiers en R.
Voyons comment cela fonctionne.
Nous allons utiliser l’ensemble de données BOD car il ne contient que 6 lignes et vous pouvez facilement observer les lignes liées.
# lie deux ensembles de données
rbind(BOD,BOD)
Time demand
1 1 8.3
2 2 10.3
3 3 19.0
4 4 16.0
5 5 15.6
6 7 19.8
---------------
7 1 8.3
8 2 10.3
9 3 19.0
10 4 16.0
11 5 15.6
12 7 19.8
L’ensemble de données BOD comporte 6 lignes. Comme nous passons les données deux fois, la fonction rbind() liera les mêmes lignes comme indiqué ci-dessus.
Et n’oubliez pas que vous avez également la fonction bind_rows().
# lie deux ensembles de données différents
bind_rows(BOD,women)
Time demand height weight
1 1 8.3 NA NA
2 2 10.3 NA NA
3 3 19.0 NA NA
4 4 16.0 NA NA
5 5 15.6 NA NA
6 7 19.8 NA NA
7 NA NA 58 115
8 NA NA 59 117
9 NA NA 60 120
10 NA NA 61 123
11 NA NA 62 126
12 NA NA 63 129
13 NA NA 64 132
14 NA NA 65 135
15 NA NA 66 139
16 NA NA 67 142
17 NA NA 68 146
18 NA NA 69 150
19 NA NA 70 154
20 NA NA 71 159
21 NA NA 72 164
Ce sont des exemples qui montrent clairement le fonctionnement et les applications des fonctions bind() et bind_rows.
I hope these illustrations helped you in understanding these functions.
Regroupement de plusieurs groupes de lignes en R
Dans cette section, nous nous concentrerons sur le regroupement de plusieurs groupes de lignes (plus de 2) à l’aide de la fonction rbind(). Voyons comment cela fonctionne.
# regroupe les lignes de 3 ensembles de données
bind_rows(BOD,women,ToothGrowth)
Time demand height weight len supp dose
1 1 8.3 NA NA NA <NA> NA
2 2 10.3 NA NA NA <NA> NA
3 3 19.0 NA NA NA <NA> NA
4 4 16.0 NA NA NA <NA> NA
5 5 15.6 NA NA NA <NA> NA
6 7 19.8 NA NA NA <NA> NA
7 NA NA 58 115 NA <NA> NA
8 NA NA 59 117 NA <NA> NA
9 NA NA 60 120 NA <NA> NA
10 NA NA 61 123 NA <NA> NA
11 NA NA 62 126 NA <NA> NA
12 NA NA 63 129 NA <NA> NA
13 NA NA 64 132 NA <NA> NA
14 NA NA 65 135 NA <NA> NA
15 NA NA 66 139 NA <NA> NA
16 NA NA 67 142 NA <NA> NA
17 NA NA 68 146 NA <NA> NA
18 NA NA 69 150 NA <NA> NA
19 NA NA 70 154 NA <NA> NA
20 NA NA 71 159 NA <NA> NA
Observez comment les trois ensembles de données ont été regroupés ou combinés par la fonction bind_rows() en R. C’est la beauté de la fonction bind_rows().
Ces deux fonctions ont d’innombrables applications dans la manipulation des données en programmation R.
Conclusion
La fonction rbind() en R et la fonction bind_rows() sont les plus utiles en matière de manipulation des données.
Vous pouvez facilement regrouper deux trames de données ayant le même nombre de colonnes à l’aide de la fonction rbind().
De même, si les trames de données ont un nombre inégal de colonnes, vous pouvez utiliser la fonction bind_rows() avec le package dplyr.
Eh bien, c’est tout pour le moment, joyeux regroupement !!!
Plus de lecture : Documentation R
Source:
https://www.digitalocean.com/community/tutorials/rbind-function-r