base (version 3.6.2) Argument Matching

Description returns a call in which all of the specified arguments are specified by their full names.

Usage = sys.function(sys.parent()),
           call =,
           expand.dots = TRUE,
           envir = parent.frame(2L))



a function, by default the function from which is called. See details.


an unevaluated call to the function specified by definition, as generated by call.


logical. Should arguments matching in the call be included or left as a argument?


an environment, from which the in call are retrieved, if any.


An object of class call.


‘function’ on this help page means an interpreted function (also known as a ‘closure’): does not support primitive functions (where argument matching is normally positional). 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 outside a function without specifying definition is an error.


Chambers, J. M. (1998) Programming with Data. A Guide to the S Language. Springer.

See Also is similar, but does not expand the argument names; call, pmatch, match.arg,


Run this code
# NOT RUN {, 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 =
fun(4 * atan(1), u = pi)
# }

Run the code above in your browser using DataLab