Learn R Programming

statnet.common (version 4.10.0)

locate_function: Locate a function with a given name and return it and its environment.

Description

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.

Usage

locate_function(name, env = globalenv(), ...)

locate_prefixed_function( name, prefix, errname, env = globalenv(), ..., call. = FALSE )

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.

Arguments

name

a character string giving the function's name.

env

an environment where 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 errname prepended to the error message.

call.

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).

Functions

  • 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.

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.

Examples

Run this code

# Locate a random function in base.
locate_function(".row_names_info")

Run the code above in your browser using DataLab