[R-es] Listas Recursivas

Isidro Hidalgo ihidalgo en jccm.es
Jue Ene 29 13:22:41 CET 2015


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-bounces en 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.herranz en 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 en r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
> >
>
> 	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es