Como ha comentado Xavier Tibau antes, todo el problema se soluciona usando
bind_rows del paquete dplyr:
library(dplyr)
foo <- bind_rows(tabla1, tabla2, tabla3, tabla4)
sin complicarse mucho la vida (salvo instalar dplyr). Según la ayuda de
bind_rows: "columns are matched by name, and any values
Si tu info es toda numérica y cada tabla tiene una clave primaria, siempre
puedes:
1) Hacer un melt por clave primaria de cada tabla para dejarla en formato
largo.
2) Apilar las tablas obtenidas con el do.call + rbind de toda la vida.
3) Hacer un cast para dejarla cuadrada de nuevo.
Así no
Hola,
Recordaba que sí que se podía hacer con data.table
Efectivamente...
> library(data.table)
> x_dt <- data.table( a= rnorm(10), b = rnorm(10))
> y_dt <- data.table( a= rnorm(10), b = rnorm(10), c = rnorm(10))
>
> l <- list(x_dt, y_dt)
> rbindlist(l, fill = TRUE)
a
Buenas,
lo que buscas se puede hacer con el paquete dplyr, con el comando
full_join(). dplyr es extremadamente recomendable para la manipulación de
datasets, y en general todos los paquetes incluidos en tidyverse..
Aquí tienes el cheatsheat:
Hola a todos:
Necesito pegar 4 bases de datos de N variables y N columnas, EL PROBLEMA ES QUE
3 CONSTAN DE 13 COLUMNAS, y LA CUARTA CON 11 COLUMNAS.
He usado rbind y smartbind, sin embargo el resultado no es el esperado, ya que
coloca las columnas a un costado y no hacia abajo como debería
Como