[R-es] Listas Recursivas

Carlos Ortega cof en qualityexcellence.es
Jue Ene 29 14:51:12 CET 2015


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 <ihidalgo en 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-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]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



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