relatable
provides two easy-to-use, robust functions for mapping from a vector of keys to a vector of values, as well as creating and applying more sophisticated mappings, such as many-to-many, one-to-many, and many-to-one relations. These are primarily designed with two goals in mind:
relate
returns a vector Y = F(X) where F maps each element of input vector X
from its position in vector A
to its corresponding position in vector B
. Can be applied as a vectorised key-value dictionary with an optional default return value. Additional options restrict mapping types so relation F must be a function, injective, surjective, etc.
relation
returns a reusable function F that performs the same operation as relate
. In addition to providing a reusable function, if handle_duplicate_mappings = TRUE
, relation
checks for and eliminates duplicate mappings that would be invalid inputs for relate
. If report_properties = TRUE
, relation
also prints the restrictions the mapping from A
to B
conforms to.