Dear expeRts,

I'm struggling a bit with arrays of lists. The nice thing about arrays is that 
one can easily access subsets. For example:

arr. <- array(1:24, dim=c(2,3,4), dimnames=list(a=c("a1","a2"), 
b=c("b1","b2","b3"),
                                  c=c("c1","c2","c3","c4")))
arr.[,,4]
mean(arr.[,,4]) # => easy to access all components for fixed third component

Assume we have an array of lists, where the second list components are numeric. 
For example:
a <- c("a1","a2")
b <- 1:3
c <- c("c1","c2","c3","c4")
arr <- array(list(), dim=c(length(a), length(b), length(c)), 
             dimnames=list(a=a, b=c("b1","b2","b3"), c=c))
for(i in 1:length(a)){
    for(j in 1:length(b)){
        for(k in 1:length(c)){
            arr[i,j,k][[1]] <- list(a=a[i], b=b[j], c=c[k])
        }
    }
}

Assume further we want to compute the mean over all second components. But 
accessing them is not as trivial as before:
h <- sapply(arr[,,4], `[[`, 2) # pick out second components for fixed third 
component; not even sure if this is fully correct though
mean(h)

The question is if there is a nicer way to compute h, that is to access all 
second components in the lists? 

Cheers,

Marius

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to