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 >
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 >
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 > > >