Rev 41424 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
\name{match.call}\title{Argument Matching}\usage{match.call(definition = NULL, call = sys.call(sys.parent()),expand.dots = TRUE)}\alias{match.call}\arguments{\item{definition}{a function, by default the function from which\code{match.call} is called. See details.}\item{call}{an unevaluated call to the function specified by\code{definition}, as generated by \code{\link{call}}.}\item{expand.dots}{logical. Should arguments matching \code{\dots}in the call be included or left as a \code{\dots} argument?}}\description{\code{match.call} returns a call in which all of the specified arguments arespecified by their full names.}\details{\sQuote{function} on this help page means an interpreted function(also known as a \sQuote{closure}): \code{match.call} does not supportwith primitive functions (where argument matching is normallypositional).\code{match.call} is most commonly used in two circumstances:\itemize{\item To record the call for later re-use: for example mostmodel-fitting functions record the call as element \code{call} ofthe list they return. Here the default \code{expand.dots = TRUE}is appropriate.\item To pass most of the call to another function, often\code{model.frame}. Here the common idiom is that\code{expand.dots = FALSE} is used, and the \code{\dots} elememtof the matched call is removed. An alternative is toexplicitly select the arguments to be passed on, as is done in\code{lm}.}Calling \code{match.call} outside a function without specifying\code{definition} is an error.}\value{An object of class \code{call}.}\references{Chambers, J. M. (1998)\emph{Programming with Data. A Guide to the S Language}.Springer.}\seealso{\code{\link{call}}, \code{\link{pmatch}}, \code{\link{match.arg}},\code{\link{match.fun}}.}\examples{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)}\keyword{programming}