match.call
Argument Matchingmatch.call
returns a call in which all of the specified arguments are specified by their full names.
match.call(definition = sys.function(sys.parent()), call = sys.call(sys.parent()), expand.dots = TRUE, envir = parent.frame(2L))
definition | a function, by default the function from which |
call | an unevaluated call to the function specified by |
expand.dots | logical. Should arguments matching |
envir | an environment, from which the |
‘function’ on this help page means an interpreted function (also known as a ‘closure’): match.call
does not support primitive functions (where argument matching is normally positional).
match.call
is most commonly used in two circumstances:
To record the call for later re-use: for example most model-fitting functions record the call as element call
of the list they return. Here the default expand.dots = TRUE
is appropriate.
To pass most of the call to another function, often model.frame
. Here the common idiom is that expand.dots = FALSE
is used, and the ...
element of the matched call is removed. An alternative is to explicitly select the arguments to be passed on, as is done in lm
.
Calling match.call
outside a function without specifying definition
is an error.
An object of class call
.
Chambers, J. M. (1998) Programming with Data. A Guide to the S Language. Springer.
sys.call()
is similar, but does not expand the argument names; call
, pmatch
, match.arg
, match.fun
.
match.call(get, call("get", "abc", i = FALSE, p = 3)) ## -> get(x = "abc", pos = 3, inherits = FALSE) fun <- function(x, lower = 0, upper = 1) { structure((x - lower) / (upper - lower), CALL = match.call()) } fun(4 * atan(1), u = pi)
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.