La fonction rbind() en R – Liaison de lignes simplifiée

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