Locate a function with a given name and return it and its environment.
Source:R/locator.R
locate_function.RdThese functions first search the given environment, then search all loaded environments, including those where the function is not exported. If found, they return an unambiguous reference to the function.
Arguments
- name
a character string giving the function's name.
- env
an
environmentwhere it should search first.- ...
additional arguments to the warning and error warning messages. See Details.
- prefix
a character string giving the prefix, so the searched-for function is
prefix.name.- errname
a character string; if given, if the function is not found an error is raised, with
errnameprepended to the error message.- call.
a logical, whether the call (
locate_prefixed_function) should be a part of the error message; defaults toFALSE(which is different fromstop()'s default).
Value
If the function is found, an unevaluated call of the form
ENVNAME:::FUNNAME, which can then be used to call the function
even if it is unexported. If the environment does not have a
name, or is GlobalEnv, only FUNNAME is returned. Otherwise,
NULL is returned.
Details
If the initial search fails, a search using
getAnywhere() is attempted, with exported ("visible") functions
with the specified name preferred over those that are not. When
multiple equally qualified functions are available, a warning is
printed and an arbitrary one is returned.
Because getAnywhere() can be slow, past searches are cached.