Hi everyone
apltake(x,1) [where apltake() is part of library(magic)] does this. best wishes Robin On 23 Nov 2005, at 10:50, Henrik Bengtsson wrote: > 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 -- Robin Hankin Uncertainty Analyst National Oceanography Centre, Southampton European Way, Southampton SO14 3ZH, UK tel 023-8059-7743 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel