| call_name {rlang} | R Documentation |
call_name() and call_ns() extract the function name or
namespace of simple calls as a string. They return NULL for
complex calls.
Simple calls: foo(), bar::foo().
Complex calls: foo()(), bar::foo, foo$bar(), (function() NULL)().
The is_call_simple() predicate helps you determine whether a call
is simple. There are two invariants you can count on:
If is_call_simple(x) returns TRUE, call_name(x) returns a
string. Otherwise it returns NULL.
If is_call_simple(x, ns = TRUE) returns TRUE, call_ns()
returns a string. Otherwise it returns NULL.
call_name(call) call_ns(call) is_call_simple(x, ns = NULL)
call |
A defused call. |
x |
An object to test. |
ns |
Whether call is namespaced. If |
The function name or namespace as a string, or NULL if
the call is not named or namespaced.
# Is the function named? is_call_simple(quote(foo())) is_call_simple(quote(foo[[1]]())) # Is the function namespaced? is_call_simple(quote(list()), ns = TRUE) is_call_simple(quote(base::list()), ns = TRUE) # Extract the function name from quoted calls: call_name(quote(foo(bar))) call_name(quo(foo(bar))) # Namespaced calls are correctly handled: call_name(quote(base::matrix(baz))) # Anonymous and subsetted functions return NULL: call_name(quote(foo$bar())) call_name(quote(foo[[bar]]())) call_name(quote(foo()())) # Extract namespace of a call with call_ns(): call_ns(quote(base::bar())) # If not namespaced, call_ns() returns NULL: call_ns(quote(bar()))