Otra alternativa...
library(data.table)
lstData - Map(as.data.frame, w.list)
Data - rbindlist(lstData)
Data
a b c
1: 1 41 X
2: 1 42 X
3: 1 43 X
4: 1 44 X
5: 1 45 X
6: 11 71 Z
7: 11 72 Z
8: 11 73 Z
9: 11 74 Z
10: 11 75 Z
Saludos,
Carlos Ortega
www.qualityexcellence.es
El 29 de enero de 2015, 13:22, Isidro Hidalgo ihida...@jccm.es escribió:
mapply(c, w.list[[1]], w.list[[2]])
Si tienes más listas, simplemente las pones a continuación de la última y
mapply te las une igual...
Un saludo.
Isidro Hidalgo Arellano
Observatorio Regional de Empleo
Consejería de Empleo y Economía
http://www.jccm.es
-Mensaje original-
De: R-help-es [mailto:r-help-es-boun...@r-project.org] En nombre de
Jorge I Velez
Enviado el: jueves, 29 de enero de 2015 13:08
Para: Jesus Herranz
CC: R-help-es
Asunto: Re: [R-es] Listas Recursivas
Hola Jesus,
Intenta lo siguiente, donde x es tu w.list:
R unlist(sapply(x, '[', 'a'))
a a
1 11
R unlist(sapply(x, '[', 'b'))
b1 b2 b3 b4 b5 b1 b2 b3 b4 b5
41 42 43 44 45 71 72 73 74 75
R unlist(sapply(x, '[', 'c'))
c c
X Z
Saludos,
Jorge.-
2015-01-29 22:37 GMT+11:00 Jesus Herranz jesus.herr...@imdea.org:
Hola
Tengo un an lisis en el que como resultado obtengo una lista
recursiva, es decir, una lista cuyos componentes a su vez son listas.
Son varias iteraciones de una funci n que proporciona varios
resultados de inter s de distinta naturaleza y por eso los uno en una
lista. Las iteraciones son hechas en paralelo, y los resultados de
una
funci n de este tipo suelen ser empaquetados a su vez en una lista
(Por ejemplo, ClusterApply del paquete snow )
Bueno, esto es para poner en situaci n el problema, porque el tema es
mucho m s general, y he tratado de sacarlo del contexto para que se
pueda entender mejor. Digamos que tengo lo siguiente: una lista que
tiene 2 listas con los mismos nombres de componentes (cada una de
ellas ser an los resultados de una iteraci n). Lo que quiero es tener
vectores separados para a, b y c. El problema parece sencillo, pero
no
encuentro la forma de acceder bien a los elementos de la lista; y con
el unlist lo junta todo y lo convierte a car cter, lo que no es muy
til. Al final, la nica soluci n que he encontrado es con un for,
pero me gustar a hacerlo de otra forma.
Gracias
w.list = list ( list ( a = 1 , b = 41:45 , c = c(X) ) ,
list ( a = 11 , b = 71:75 , c = c(Z) ) )
w.list
a.all = NULL ; b.all = NULL; c.all = NULL
for ( i in 1:2 )
{ a.all = c ( a.all , w.list[[i]]$a )
b.all = c ( b.all , w.list[[i]]$b )
c.all = c ( c.all , w.list[[i]]$c )
}
a.all
b.all
c.all
[[alternative HTML version deleted]]
___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
[[alternative HTML version deleted]]
___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
--
Saludos,
Carlos Ortega
www.qualityexcellence.es
[[alternative HTML version deleted]]
___
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es