On Tue, 21 Oct 2003, Robin Hankin wrote: > Hi everyone > > I've been playing with do.call() but I'm having problems understanding it. > > I have a list of "n" elements, each one of which is "d" dimensional > [actually an n-by-n-by ... by-n array]. Neither n nor d is known in > advance. I want to bind the elements together in a higher-dimensional > array. > > Toy example follows with d=n=3. > > f <- function(n){array(n,c(3,3,3))} > x <- sapply(1:3,f,simplify=FALSE) > > Then what I want is > > ans <- abind(x[[1]] , x[[2]] , x[[3]] , along=4) > > [abind() is defined in library(abind)]. > > Note that dim(ans) is c(3,3,3,3), as required. > > PROBLEM: how do I do tell do.call() that I want to give abind() the > extra argument along=4 (in general, I want > along=length(dim(x[[1]]))+1)? > > > Oblig Attempt: > > jj <- function(...){abind(... , along=4)} > do.call("jj" , x) > > This works, because I know that d=3 (and therefore use along=4), but > it doesn't generalize easily to arbitrary d. I'm clearly missing > something basic. Anyone? >
If I have understood correctly, then d<-length(dim(x[[1]])) do.call("abind",c(x,along=d+1)) should work. -thomas ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help