[Rd] x[1,], x[1,,], x[1,,,], ...
Patrick Burns
pburns at pburns.seanet.com
Wed Nov 23 13:06:24 CET 2005
- Previous message: [Rd] x[1,], x[1,,], x[1,,,], ...
- Next message: [Rd] x[1,], x[1,,], x[1,,,], ...
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
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
patrick at burns-stat.com
+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 at r-project.org mailing list
>https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
>
>
>
- Previous message: [Rd] x[1,], x[1,,], x[1,,,], ...
- Next message: [Rd] x[1,], x[1,,], x[1,,,], ...
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the R-devel
mailing list