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.