# extract.array

0th

Percentile

##### Extract a subset of an array, matrix or a vector with unknown dimensions

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.

Keywords
methods, programming
##### Usage
## S3 method for class 'array':
extract(x, ..., indices=list(...), dims=names(indices), drop=FALSE)
##### Arguments
x
An array or a matrix.
...
These arguments are by default put into the indices list.
indices
A list of index vectors to be extracted.
dims
An vector of dimensions - one per element in indices - which will be coerced to integers. If
drop
If TRUE, dimensions of length one are dropped, otherwise not.
##### Value

• Returns an array.

slice.index()

##### Aliases
• extract.array
• extract.matrix
• extract.default
##### Examples
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Example using an array with a random number of dimensions
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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("Array 'x':
")
print(x)

cat("Extract 'x[2:3,...]':
")
print(extract(x, "1"=2:3))

cat("Extract 'x[3,2:3,...]':
")
print(extract(x, "1"=3,"2"=2:3))

cat("Extract 'x[...,2:3]':
")
print(extract(x, indices=2:3, dims=length(dim(x))))

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Assertions
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
y <- array(1:24, dim=c(2,3,4))
yA <- y[,,2:3]
yB <- extract(y, indices=list(2:3), dims=length(dim(y)))
stopifnot(identical(yB, yA))

yA <- y[,2:3,2]
yB <- extract(y, indices=list(2:3,2), dims=c(2,3), drop=TRUE)
stopifnot(identical(yB, yA))
Documentation reproduced from package R.utils, version 2.0.0, License: LGPL (>= 2.1)

### Community examples

Looks like there are no examples yet.