A function, formula, or atomic vector.
If a function, it is used as is.
If a formula, e.g. ~ .x + 2, it is converted to a
function with two arguments, .x or . and .y. This
allows you to create very compact anonymous functions with up to
two inputs.
If character or integer vector, e.g. "y", it
is converted to an extractor function, function(x) x[["y"]]. To
index deeply into a nested list, use multiple values; c("x", "y")
is equivalent to z[["x"]][["y"]]. You can also set .null
to set a default to use instead of NULL for absent components.