View source: R/matsindf_apply.R
where_to_get_args | R Documentation |
The precedence rules for where to obtain values for the FUN
argument to
matsindf_apply()
are codified here.
The rules are:
Precedence order: ...
, .dat
, defaults arguments to FUN
(highest priority to lowest priority).
If an element of ...
is a character string of length 1
,
the element of ...
provides a mapping between
an item in .dat
(with same name as the value of the character string of length 1
)
to an argument of FUN
(with the same name as the name of the character string of length 1
).
If the value of the character string of length 1
is not a name in .dat
,
the default arguments to FUN
are checked in this order.
If the name of a default argument to FUN
is the same as the value of the
string of length 1
argument in ...
, a mapping occurs.
If a mapping is not possible,
the default arg to FUN
is used directly.
where_to_get_args(.dat = NULL, FUN, ...)
.dat |
The |
FUN |
The |
... |
The |
A named list wherein the names are the argument names to FUN
.
Values are character vectors with 2 elements.
The first element is named source
and provides
the argument to matsindf_apply()
from which the named argument should be found,
one of ".dat", "FUN", or "...".
The second element is named arg_name
and provides
the variable name or argument name in the source that contains the input data
for the argument to FUN
.
example_fun <- function(a = 1, b) {
list(c = a + b, d = a - b)
}
# b is not available anywhere, likely causing an error later
matsindf:::where_to_get_args(FUN = example_fun)
# b is now available in ...
matsindf:::where_to_get_args(FUN = example_fun, b = 2)
# b is now available in .dat
matsindf:::where_to_get_args(list(b = 2), FUN = example_fun)
# b now comes from ..., because ... takes precedence over .dat
matsindf:::where_to_get_args(list(b = 2), FUN = example_fun, b = 3)
# Mapping from c in .dat to b in FUN
matsindf:::where_to_get_args(list(c = 2),
FUN = example_fun, b = "c")
# Redirect from an arg in ... to a different default to FUN
matsindf:::where_to_get_args(FUN = example_fun, b = "a")
# b is found in FUN, not in .dat, because the mapping (b = "a")
# is not available in .dat
matsindf:::where_to_get_args(list(b = 2), FUN = example_fun, b = "a")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.