Hola buen día a todos,

tengo un el problema de que aveces por medio de la funcion by saco
data.frame, entonces el by me da un list con los data.frame, que tienen la
misma estructura.

El problema empieza cuando quiero tener de nuevo un único data.frame, como
tienen todos la misma estructura pero de numero diferente de observaciones,
estos pueden ser pegados uno bajo el otro con un cbind y for, pero cuando
son muchos elementos en el list y los data frame son de tamaño considerable
esta tarea se empieza a volver muy lenta.

he creado una función para que haga pegado parciales primero de 3 en 3 o de
n en n y asi recursivamente hasta tener un solo data.frame

pero me gustaria saber si alguien a tenido este problema y ha encontrado
una función que permita hacer esta tarea de forma eficiente

lo que hago en esencia es lo que seria un "union all" de sql

por ejemplo se tiene la lista

L=list(data.frame(a=1:2,b=letters[1:2]),data.frame(a=3:4,b=letters[3:4]),data.frame(a=5:6,b=letters[5:6]))

una forma de hacerlo lo que quiero es escribir
L2=rbind(L[[1]],L[[2]],L[[3]])
L2

2> L2
  a b
1 1 a
2 2 b
3 3 c
4 4 d
5 5 e
6 6 f


claro que en ciertos programas esto no sabemos de que tamaño sera el list,
es absurdo escribirlo a mano todo si tuvieramos 50 elementos en el list, si
se hace recursivo por un for uno a uno como lo comentaba si los data.frame
son de tamaño considerable se vuelve muy lento, pues por lo que veo cada
que ejecutas un cbind escribe los dos data.frames que estas uniendo,
entonces cada que pegas uno mas es mas y mas lento.

espero alguien tenga una buena idea de como hacer esto


gracias por la ayuda

	[[alternative HTML version deleted]]

