When called inside functions that take a function as argument, extract the desired function object while avoiding undesired matching to objects of other types.
match.fun(FUN, descend = TRUE)
item to match as function: a function, symbol or character string. See ‘Details’.
logical; control whether to search past non-function objects.
match.fun is not intended to be used at the top level since it
will perform matching in the parent of the caller.
FUN is a function, it is returned. If it is a symbol (for
example, enclosed in backquotes) or a
character vector of length one, it will be looked up using
in the environment of the parent of the caller. If it is of any other
mode, it is attempted first to get the argument to the caller as a
substitute twice), and if that fails, an error is
descend = TRUE,
match.fun will look past non-function
objects with the given name; otherwise if
FUN points to a
non-function object then an error is generated.
This is used in base functions such as
A function matching
FUN or an error is generated.
descend argument is a bit of misnomer and probably not
actually needed by anything. It may go away in the future.
It is impossible to fully foolproof this. If one
list or data frame containing a length-one character vector with the
same name as a function, it may be used (although namespaces
Peter Dalgaard and Robert Gentleman, based on an earlier version by Jonathan Rougier.
# Same as get("*"): match.fun("*") # Overwrite outer with a vector outer <- 1:5 try(match.fun(outer, descend = FALSE)) #-> Error: not a function match.fun(outer) # finds it anyway is.function(match.fun("outer")) # as well
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.