La unión o combinación de las filas es muy fácil con la función rbind() en R.
rbind() significa unión de filas. En términos más simples, se trata de unir varias filas para formar un lote único. Puede incluir la unión de dos marcos de datos, vectores y más.
Este artículo hablará sobre los usos y aplicaciones de la función rbind() en la programación de R.
Sin perder mucho tiempo, ¡vamos a entrar en el tema!
Sintaxis de la función rbind()
rbind(): La función rbind o unión de filas se utiliza para unir o combinar múltiples grupos de filas entre sí.
rbind(x,x1)
Donde:
- X = the input data.
- X1 = Los datos que deben unirse.
La idea de unir filas usando rbind()
La idea de unir o combinar las filas de múltiples marcos de datos es muy beneficiosa en la manipulación de datos.
El siguiente diagrama definitivamente te dará una idea de cómo funciona la función rbind().
Puedes ver cómo se unen/combinan las filas de diferentes marcos de datos mediante la función rbind().
Implementación de la función rbind() en R
Como sabes, la función rbind() en R se utiliza para unir las filas de diferentes grupos de datos.
En esta sección, vamos a construir unos marcos de datos simples y unirlos usando la función rbind().
#creando un marco de datos
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
El código anterior construirá un marco de datos simple que presenta detalles y nombres de estudiantes.
Student_class Student_details
1 High school Mark
2 College John
3 High school Fredrick
4 High school Floyd
5 College George
Bien, ahora tenemos un marco de datos de 5 filas. Vamos a crear otro marco de datos.
#creando otro marco de datos
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
Bien, ahora tenemos 2 marcos de datos con diferentes cantidades de filas (df1 y df2). Vamos a usar la función rbind() para unir los dos marcos de datos anteriores en un solo marco de datos.
Vamos a ver cómo funciona.
No vas a creer que todo el proceso de unión requerirá solo una línea de código.
#une las filas de los 2 marcos de datos de entrada
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
El marco de datos resultante será una versión unida de ambos marcos de datos, como se muestra en la salida anterior.
Uniendo dos marcos de datos de longitud desigual utilizando la función bind()
Bueno, en la sección anterior, hemos combinado los dos grupos de filas juntos.
En esta sección, vamos a combinar dos conjuntos de datos utilizando la función rbind en R.
#crea el marco de datos
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
#crea el marco de datos
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
¡Espera, qué pasó? ¿Por qué la función está arrojando un error?
Si lees las líneas del error, está indicando que el número de columnas no coincide.
Tenemos 2 columnas en ‘df1’ y 3 columnas en ‘df2’.
¡No te preocupes! tenemos la función bind_rows() que nos ayudará en estos escenarios.
La función bind_rows() para unir conjuntos de datos desiguales
bind_rows() es una función que forma parte del paquete dplyr. Primero debemos importar el paquete dplyr para ejecutar esta función.
Estamos utilizando los mismos marcos de datos presentes en la sección anterior, es decir, df1 y df2. Veamos cómo funciona.
#instalar paquetes requeridos
install.packages('dplyr')
#importar librerías
library(dplyr)
#unir las filas
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+
ahora puedes ver que la función bind_rows ha combinado estos dos conjuntos de datos desiguales en términos de columnas. Los espacios vacíos se marcarán como <NA>.
Unir dos conjuntos de datos utilizando la función rbind()
En esta sección, veremos la unión de dos conjuntos de datos completos en R.
Vamos a ver cómo funciona.
Vamos a utilizar el conjunto de datos BOD ya que solo tiene 6 filas y también puedes observar fácilmente las filas unidas.
#une dos conjuntos de datos
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
El conjunto de datos BOD tiene 6 filas. Como estamos pasando los datos dos veces, la función rbind() unirá las mismas filas como se muestra arriba.
Y también no olvides que tienes la función bind_rows() también.
#une dos conjuntos de datos diferentes
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
Estos son ejemplos que muestran claramente el funcionamiento y las aplicaciones de las funciones bind() y bind_rows.
I hope these illustrations helped you in understanding these functions.
Unión de múltiples grupos de filas en R
En esta sección, nos enfocaremos en unir múltiples (más de 2) grupos de filas utilizando la función rbind(). Veamos cómo funciona.
#une filas de 3 conjuntos de datos
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
Observa cómo los tres conjuntos de datos fueron unidos o combinados por la función bind_rows() en R. Esta es la belleza de la función bind_rows().
Estas 2 funciones tienen aplicaciones infinitas en la manipulación de datos en la programación en R.
Conclusiones
La función rbind() en R y la función bind_rows() son las funciones más útiles cuando se trata de la manipulación de datos.
Puedes unir fácilmente dos data frames con el mismo número de columnas utilizando la función rbind().
De la misma manera, si los data frames tienen un número desigual de columnas, puedes usar la función bind_rows() junto con el paquete dplyr.
Bueno, eso es todo por ahora, ¡Feliz unión!
Más información: Documentación de R
Source:
https://www.digitalocean.com/community/tutorials/rbind-function-r