A list of indices (e.g., a list of a mixture of integer,
character, and logical vectors, but can actually be anything). Can
be just a vector in the case that length(dims)==1.
NULL entries in the list will be treated as empty indices.
dims
The dimensions on which to index (a numeric or integer
vector). The default is all of the dimensions.
drop
The 'drop' argument to index with (the default is to not
supply a 'drop' argument
Details
Constructs and evaluates an expression to do the requested indexing.
E.g., for x with length(dim(x))==4 the call
asub(x, list(c("a","b"), 3:5), 2:3) will construct and evaluate
the expression x[, c("a","b"), 3:5, ], and the call
asub(x, 1, 2, drop=FALSE) will construct and evaluate
the expression x[, 1, , , drop=FALSE].
asub checks that the elements of dims are in the range 1
to length(dim(x)) (in the case that x is a vector,
length(x) is used for dim(x)). Other than that, no
checks are made on the suitability of components of idx as
indices for x. If the components of idx have any
out-of-range values or unsuitable types, this will be left to the
subsetting method for x to catch.