call {base} | R Documentation |
Create or test for objects of mode "call"
.
call(name, ...)
is.call(x)
as.call(x)
name |
a non-empty character string naming the function to be called. |
... |
arguments to be part of the call. |
x |
an arbitrary R object. |
call
returns an unevaluated function call, that is, an
unevaluated expression which consists of the named function applied to
the given arguments (name
must be a quoted string which gives
the name of a function to be called). Note that although the call is
unevaluated, the arguments ...
are evaluated.
call
is a primitive, so the first argument (named or not) is
taken as name
and the remaining arguments as arguments for the
constructed call: call(x="c", 1,3, name="foo")
is a call to
c
and not to foo
.
is.call
is used to determine whether x
is a call (i.e.,
of mode "call"
).
Objects of mode "list"
can be coerced to mode "call"
.
The first element of the list becomes the function part of the call,
so should be a function or the name of one (as a symbol; a quoted
string will not do).
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
do.call
for calling a function by name and argument
list;
Recall
for recursive calling of functions;
further
is.language
,
expression
,
function
.
is.call(call) #-> FALSE: Functions are NOT calls
## set up a function call to round with argument 10.5
cl <- call("round", 10.5)
is.call(cl)# TRUE
cl
## such a call can also be evaluated.
eval(cl)# [1] 10
A <- 10.5
call("round", A) # round(10.5)
call("round", quote(A)) # round(A)
f <- "round"
call(f, quote(A)) # round(A)
## if we want to supply a function we need to use as.call or similar
f <- round
## Not run: call(f, quote(A)) # error: first arg must be character
(g <- as.call(list(f, quote(A))))
eval(g)
## alternatively but less transparently
g <- list(f, quote(A))
mode(g) <- "call"
g
eval(g)
## see also the examples in the help for do.call