These 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.
locate_function(name, env = globalenv(), ...)locate_prefixed_function(
name,
prefix,
errname,
env = globalenv(),
...,
call. = FALSE
)
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.
a character string giving the function's name.
an environment
where it should search first.
additional arguments to the warning and error warning messages. See Details.
a character string giving the prefix, so the
searched-for function is prefix.name
.
a character string; if given, if the function is not
found an error is raised, with errname
prepended to the error
message.
a logical, whether the call
(locate_prefixed_function
) should be a part of the error
message; defaults to FALSE
(which is different from stop()
's
default).
locate_function()
: a low-level function returning the
reference to the function named name
, or NULL
if not found.
locate_prefixed_function()
: a helper function that searches for a
function of the form prefix.name
and produces an informative
error message if not found.
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.
# Locate a random function in base.
locate_function(".row_names_info")
Run the code above in your browser using DataLab