[R-es] Listas Recursivas

Jorge I Velez jorgeivanvelez en gmail.com
Jue Ene 29 13:08:12 CET 2015


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