# [Rd] x[1,], x[1,,], x[1,,,], ...

From: Henrik Bengtsson <hb_at_maths.lth.se>
Date: Wed 23 Nov 2005 - 10:50:51 GMT

Hi,

# 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 <- "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 <- "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 Received on Wed Nov 23 23:12:27 2005

This archive was generated by hypermail 2.1.8 : Mon 20 Feb 2006 - 03:21:34 GMT