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

See Also

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 1.28.4, License: LGPL (>= 2.1)

Community examples

Looks like there are no examples yet.