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, j, ..., drop = TRUE) that
is meant to be used as a method for [ for a custom type.
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.
This idea initially comes from package crochet.