Hi, is there a function in R already doing what I try to do below:
# Let 'x' be an array with *any* number of dimensions (>=1). x <- array(1:24, dim=c(2,2,3,2)) ... x <- array(1:24, dim=c(4,3,2)) i <- 2:3 ndim <- length(dim(x)) if (ndim == 1) y <- x[i] else if (ndim == 2) y <- x[i,] else if (ndim == 3) y <- x[i,,] else ... and so on. My current solution is ndim <- length(dim(x)) args <- rep(",", ndim) args[1] <- "i" args <- paste(args, collapse="") code <- paste("x[", args, "]", sep="") expr <- parse(text=code) y <- eval(expr) ndim <- length(dim(x)) args <- rep(",", ndim) args[1] <- "i" args <- paste(args, collapse="") code <- paste("x[", args, "]", sep="") expr <- parse(text=code) y <- eval(expr) Is there another way I can do this in R that I have overlooked? /Henrik ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel