R: función rbind() y fusión de datos
Si necesitas ordenar conjuntos de datos que tienen el mismo número de columnas, utilizarbind()
en R para ello.
¿Para qué sirve rbind()
en R?
La función rbind()
de R resulta muy útil para combinar datos línea por línea. Se utiliza principalmente para añadir nueva información a un data frame existente, lo cual es útil cuando tienes datos que se actualizan regularmente y quieres integrarlos en un conjunto de datos existente. Al procesar datos en bucles o procesos iterativos, rbind()
combina los resultados paso a paso.
Además, rbind()
en R se utiliza a menudo para combinar data frames con la misma estructura, ya sea para un análisis más exhaustivo o para unir diferentes partes de un conjunto de datos en un conjunto de datos completo. Debes tener en cuenta que, aunque rbind()
es eficiente con conjuntos de datos pequeños, para grandes conjuntos de datos se recomienda utilizar paquetes como dplyr
para mejorar el rendimiento.
Así es la sintaxis de rbind()
en R
Puedes especificar tantos data frames como quieras combinar en los parámetros de rbind()
siempre que todos tengan el mismo número y nombres de columnas.
rbind(data.frame1, data.frame2, ...)
RLos argumentos data.frame1
, data.frame2
, etc., son marcos de datos o listas de data frames que debes unir por filas.
Ejemplos de uso de rbind()
en R
Para ilustrar cómo funciona rbind()
en R con un ejemplo concreto, primero debes crear un data frame con dos columnas:
#creating data frame 1
names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1
RObtendrás el siguiente resultado:
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurse
RA continuación, define otro data frame con el mismo número de columnas:
#creating data frame 2
names<-c("Eva","John")
status<-c("doctor","nurse")
df2<-data.frame(names, status)
df2
RResultado:
names status
1 Eva doctor
2 John nurse
RAhora puedes combinar ambos data frames:
#binding rows of df1 and df2
rbind(df1,df2)
RObtendrás el siguiente resultado:
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurse
6 Eva doctor
7 John nurse
RNo se pueden unir data frames de diferente longitud con rbind()
en R
Fíjate qué ocurre cuando intentas combinar data frames con un número diferente de columnas.
Primero, crea un nuevo data frame con dos columnas:
#creating data frame 1
names<-c("Deborah","Tom","Matt","Laura","Rebecca")
status<-c("nurse","doctor","nurse","doctor","nurse")
df1<-data.frame(names, status)
df1
RResultado:
names status
1 Deborah nurse
2 Tom doctor
3 Matt nurse
4 Laura doctor
5 Rebecca nurse
RLuego, crea un data frame con una columna adicional (tres en total):
#creating data frame 2
names<-c("Eva","John")
status<-c("doctor","nurse")
age<-c("52","38")
df2<-data.frame(names, status, age)
df2
RResultado:
names status age
1 Eva doctor 52
2 John nurse 38
RAl intentar unir ambos con rbind()
en R recibirás el siguiente mensaje de error:
rbind(df1,df2)
Error in rbind(deparse.level, ...) :
numbers of columns of arguments do not match
REl error indica que no puedes unir los dos data frames con rbind()
porque el número de columnas no coincide. Sin embargo, sí puedes utilizar bind_rows()
del paquete dplr
para juntarlos.
bind_rows()
te permite combinar data frames de diferente longitud
El error anterior se soluciona fácilmente con bind_rows()
.
#install dplyr
install.packages('dplyr')
#import libraries
library(dplyr)
#bind rows
bind_rows(df1,df2)
REl resultado que obtienes es el siguiente:
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
RCon bind_rows()
consigues combinar los dos data frames. Los campos vacíos se marcan con <NA>
. La función es, por tanto, una buena alternativa a rbind()
en R cuando los data frames no tienen el mismo número de columnas.
- Rápido, seguro, flexible y escalable
- Certificado SSL/DDoS incluido
- Dominio y asesor personal incluidos