You can look at the definition of 'corner' in the public domain area of the Burns Statistics website. It uses 'do.call' on '[' to achieve (sort of) what you want.
Patrick Burns [EMAIL PROTECTED] +44 (0)20 8525 0696 http://www.burns-stat.com (home of S Poetry and "A Guide for the Unwilling S User") 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 > > > > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel