extract.array {R.utils} | R Documentation |
Extract a subset of an array, matrix or a vector with unknown dimensions.
This method is useful when you do not know the number of dimensions of the object your wish to extract values from, cf. example.
## S3 method for class 'array': extract(x, ..., drop=FALSE, indices=list(...))
x |
An array or a matrix . |
... |
These arguments are by default put into the
indices list . |
indices |
A list of index vector s to be extracted.
The names (coerced to integers) of the list elements are the
dimension indices for each of the index vectors. |
drop |
If TRUE , dimensions of length one are dropped,
otherwise not. |
Returns an array
.
Henrik Bengtsson (http://www.braju.com/R/)
cat("\nCreate an array 'x' with a random number of dimensions:\n") maxdim <- 4 dim <- sample(3:maxdim, size=sample(2:maxdim, size=1), replace=TRUE) ndim <- length(dim) dimnames <- list() for (kk in 1:ndim) dimnames[[kk]] <- sprintf("%s%d", letters[kk], 1:dim[kk]) x <- 1:prod(dim) x <- array(x, dim=dim, dimnames=dimnames) cat("\nArray 'x':\n") print(x) cat("\nExtract 'x[2:3,...]':\n") print(extract(x, "1"=2:3)) cat("\nExtract 'x[3,2:3,...]':\n") print(extract(x, "1"=3,"2"=2:3)) cat("\nExtract 'x[...,2:3]':\n") indices <- list(2:3) names(indices) <- length(dim(x)) print(extract(x, indices=indices))