R/MapOrDoCall.R
identifyVectorArgs.Rd
When running arbitrary functions inside other functions, there is a common
construct in R to use ...
. It does not work, however, in the general case
to write do.call(fn, list(...))
because not all fn
themselves
accept ...
. So this will fail if too many arguments are supplied to
the ...
. In the general case, we want to write:
do.call(fn, list(onlyTheArgumentsThatAreNeeded))
. This function helps
to find the onlyTheArgumentsThatAreNeeded
by determining a) what is needed
by the fn
(which can be a list of many fn
), and b) where to find
values, either in an arbitrary environment or passed in via dots
.
identifyVectorArgs(fn, localFormalArgs, envir, dots)
A function or list of functions from which to run formalArgs
A vector of possible objects, e.g., from ls()
The environment to find the objects named in localFormalArgs
Generally list(...), which would be an alternative place to find
localFormalArgs
A list of length 2, named argsSingle
and argsMulti
, which
can be passed to e.g.,
MapOrDoCall(fn, multiple = args1$argsMulti, single = args1$argsSingle)