% File src/library/methods/man/hasArg.Rd % Part of the R package, https://www.R-project.org % Copyright 1995-2013 R Core Team % Distributed under GPL 2 or later \name{hasArg} \alias{hasArg} \title{Look for an Argument in the Call} \description{ Returns \code{TRUE} if \code{name} corresponds to an argument in the call, either a formal argument to the function, or a component of \code{...}, and \code{FALSE} otherwise. } \usage{ hasArg(name) } \arguments{ \item{name}{The name of a potential argument, as an unquoted name or character string.} } \details{ The expression \code{hasArg(x)}, for example, is similar to \code{!missing(x)}, with two exceptions. First, \code{hasArg} will look for an argument named \code{x} in the call if \code{x} is not a formal argument to the calling function, but \code{...} is. Second, \code{hasArg} never generates an error if given a name as an argument, whereas \code{missing(x)} generates an error if \code{x} is not a formal argument. } \value{ Always \code{TRUE} or \code{FALSE} as described above. } \seealso{ \code{\link{missing}} } \examples{ ftest <- function(x1, ...) c(hasArg(x1), hasArg("y2")) ftest(1) ## c(TRUE, FALSE) ftest(1, 2) ## c(TRUE, FALSE) ftest(y2 = 2) ## c(FALSE, TRUE) ftest(y = 2) ## c(FALSE, FALSE) (no partial matching) ftest(y2 = 2, x = 1) ## c(TRUE, TRUE) partial match x1 } \keyword{ programming }