extract
is a function that converts different index types such as negative
integer vectors or logical vectors passed to the [
function as i
(e.g. X[i]
) or i
and j
(e.g. X[i, j]
) into positive
integer vectors. The converted indices are provided as the i
parameter of
extract_vector
or i
and j
parameters of extract_matrix
to facilitate
implementing the extraction mechanism for custom matrix-like types.
Extract(extract_vector, extract_matrix)
A function in the form of function(x, i)
that takes
a subset of x
based on a single vector of indices i
and returns a vector.
A function in the form of function(x, i, j)
that
takes a subset of x
based on two vectors of indices i
and j
and returns
a matrix.
A function in the form of function(x, i, j, ..., drop = TRUE)
that
is meant to be used as a method for [
for a custom type.
The custom type must implement methods for dim
for this function
to work. Implementing methods for nrow
and ncol
is not necessary
as the default method of those generics calls dim
internally.
This idea initially comes from package crochet.