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 pri­n­ci­pa­l­me­n­te para añadir nueva in­fo­r­ma­ción a un data frame existente, lo cual es útil cuando tienes datos que se ac­tua­li­zan re­gu­la­r­me­n­te y quieres in­te­grar­los en un conjunto de datos existente. Al procesar datos en bucles o procesos ite­ra­ti­vos, rbind() combina los re­su­l­ta­dos paso a paso.

Además, rbind() en R se utiliza a menudo para combinar data frames con la misma es­tru­c­tu­ra, ya sea para un análisis más exhau­s­ti­vo o para unir di­fe­re­n­tes 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 re­co­mie­n­da utilizar paquetes como dplyr para mejorar el re­n­di­mie­n­to.

Así es la sintaxis de rbind() en R

Puedes es­pe­ci­fi­car tantos data frames como quieras combinar en los pa­rá­me­tros de rbind() siempre que todos tengan el mismo número y nombres de columnas.

rbind(data.frame1, data.frame2, ...)
R

Los ar­gu­me­n­tos 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
R

Obtendrás el siguiente resultado:

names status
1  Deborah     nurse
2  Tom   doctor
3  Matt      nurse
4  Laura   doctor
5  Rebecca     nurse
R

A co­n­ti­nua­ció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
R

Resultado:

names    status
 1  Eva       doctor
2   John     nurse
R

Ahora puedes combinar ambos data frames:

#binding rows of df1 and df2
rbind(df1,df2)
R

Obtendrá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
R

No 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
R

Resultado:

names     status
1  Deborah nurse      
2  Tom doctor    
3  Matt nurse      
4  Laura doctor    
5  Rebecca nurse
R

Luego, 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
R

Resultado:

names    status    age
1  Eva        doctor    52
2  John      nurse      38
R

Al 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
R

El 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á­ci­l­me­n­te con bind_rows().

#install dplyr
install.packages('dplyr')
#import libraries
library(dplyr)
#bind rows
bind_rows(df1,df2)
R

El 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
R

Con bind_rows() consigues combinar los dos data frames. Los campos vacíos se marcan con <NA>. La función es, por tanto, una buena al­te­r­na­ti­va a rbind() en R cuando los data frames no tienen el mismo número de columnas.

Consejo

Si quieres saber más sobre funciones para mostrar y editar conjuntos de datos en R, te re­co­me­n­da­mos consultar los tu­to­ria­les R plot y R paste de nuestra Digital Guide.

Web Hosting
El hosting que crece con tu proyecto
  • Tiempo de actividad de 99.99 % y seguridad ga­ra­n­ti­za­da
  • Aumenta el re­n­di­mie­n­to según el tráfico de tu página web
  • Incluye dominio, SSL, e-mail y soporte 24/7
Ir al menú principal