[R] How to create an array of lists of multiple components?
Gabor Grothendieck
ggrothendieck at gmail.com
Wed Dec 29 23:19:21 CET 2010
On Wed, Dec 29, 2010 at 4:58 PM, Marius Hofert <m_hofert at web.de> wrote:
> Dear Jim,
>
> thanks for your quick response. Here is what I try to achieve:
>
> ## list containing some data
> l <- list(
> list(
> list(
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2)
> ),
> list(
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2)
> ),
> list(
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2)
> )
> ),
> list(
> list(
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2)
> ),
> list(
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2)
> ),
> list(
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2),
> list(a = 1, b = "b", c = 2)
> )
> )
> )
>
> ## now (try to) build an array of lists of the form list(a = 1, b = "b", c = 2)
> n1 <- 2
> n2 <- 3
> n3 <- 4
> res <- array(rep(list(NULL,NULL,NULL), n1*n2*n3), dim = c(n1,n2,n3))
> for(i in 1:n1){
> for(j in 1:n2){
> for(k in 1:n3){
> res[i,j,k] <- l[[i]][[j]][[k]]
> }
> }
> }
>
Try this:
array(sapply(sapply(l, c), c), c(4, 3, 2))
--
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com
More information about the R-help
mailing list