blob: 66e395b14ee56d8917deb7160bf80d1635296173 [file] [log] [blame]
% File src/library/base/man/missing.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2009 R Core Team
% Distributed under GPL 2 or later
\name{missing}
\alias{missing}
\title{Does a Formal Argument have a Value?}
\usage{
missing(x)
}
\description{
\code{missing} can be used to test whether a value was specified
as an argument to a function.
}
\arguments{
\item{x}{a formal argument.}
}
\details{
\code{missing(x)} is only reliable if \code{x} has not been altered
since entering the function: in particular it will \emph{always}
be false after \code{x <- match.arg(x)}.
The example shows how a plotting function can be written to work with
either a pair of vectors giving x and y coordinates of points to be
plotted or a single vector giving y values to be plotted against their
indices.
Currently \code{missing} can only be used in the immediate body of
the function that defines the argument, not in the body of a nested
function or a \code{local} call. This may change in the future.
This is a \sQuote{special} \link{primitive} function: it must not
evaluate its argument.
}
\references{
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
\emph{The New S Language}.
Wadsworth & Brooks/Cole.
Chambers, J. M. (1998)
\emph{Programming with Data. A Guide to the S Language}.
Springer.
}
\seealso{
\code{\link{substitute}} for argument expression;
\code{\link{NA}} for missing values in data.
}
\examples{
myplot <- function(x, y) {
if(missing(y)) {
y <- x
x <- 1:length(y)
}
plot(x, y)
}
}
\keyword{programming}