[R] About list to list - thanks

Gabor Grothendieck ggrothendieck at gmail.com
Tue Apr 11 19:32:14 CEST 2006


One other thought.  If they are all of the same dimension you could
alternately consider putting them into a 3d array:

library(abind)
abind(lapply(foo, function(x) do.call(rbind, x)), along = 3)

which may or may not have some advantage to you.

On 4/11/06, Muhammad Subianto <msubianto at gmail.com> wrote:
> Thank you very much for your useful suggestions.
> These are exactly what I was looking for.
>
> foo <- list(foo1, foo2, foo3)
> lapply(foo, function(x) matrix(unlist(x), nrow = length(x), byrow = TRUE))
> or
> lapply(foo, function(x) do.call('rbind', x))
>
> Best, Muhammad Subianto
>
> On 4/11/06, Muhammad Subianto <msubianto at gmail.com> wrote:
> > Dear all,
> > I have a result my experiment like this below (here my toy example):
> >
> > foo1 <- list()
> > foo1[[1]] <- c(10, 20, 30)
> > foo1[[2]] <- c(11, 21, 31)
> >
> > foo2 <- list()
> > foo2[[1]] <- c(100, 200, 300)
> > foo2[[2]] <- c(110, 210, 310)
> >
> > foo3 <- list()
> > foo3[[1]] <- c(1000, 2000, 3000)
> > foo3[[2]] <- c(1100, 2100, 3100)
> >
> > list(foo1,foo2,foo3)
> >
> > The result:
> > > list(foo1,foo2,foo3)
> > [[1]]
> > [[1]][[1]]
> > [1] 10 20 30
> >
> > [[1]][[2]]
> > [1] 11 21 31
> >
> > [[2]]
> > [[2]][[1]]
> > [1] 100 200 300
> >
> > [[2]][[2]]
> > [1] 110 210 310
> >
> > [[3]]
> > [[3]][[1]]
> > [1] 1000 2000 3000
> >
> > [[3]][[2]]
> > [1] 1100 2100 3100
> >
> > >
> > I want to convert like this below (as list).
> >
> > [[1]]
> > [1] 10 20 30
> > [2] 11 21 31
> >
> > [[2]]
> > [1] 100 200 300
> > [2] 110 210 310
> >
> > [[3]]
> > [1] 1000 2000 3000
> > [2] 1100 2100 3100
> >
> > I saw on the R-help archives page similar like this but I can't find a
> > solution.
> > http://tolstoy.newcastle.edu.au/R/help/05/05/4678.html
> > Thanks very much for any suggestions.
> >
> > Sincerely, Muhammad Subianto
> >
>




More information about the R-help mailing list