blob: 546e7a87b362718937e43ad6bfe1a796ff8c97ee [file] [log] [blame]
% File src/library/stats/man/na.fail.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2007 R Core Team
% Distributed under GPL 2 or later
\name{na.fail}
\alias{na.fail}
\alias{na.fail.default}
\alias{na.omit}
\alias{na.omit.data.frame}
\alias{na.omit.default}
\alias{na.exclude}
\alias{na.exclude.data.frame}
\alias{na.exclude.default}
\alias{na.pass}
\title{Handle Missing Values in Objects}
\usage{
na.fail(object, \dots)
na.omit(object, \dots)
na.exclude(object, \dots)
na.pass(object, \dots)
}
\arguments{
\item{object}{an \R object, typically a data frame}
\item{\dots}{further arguments special methods could require.}
}
\description{
These generic functions are useful for dealing with \code{\link{NA}}s
in e.g., data frames.
\code{na.fail} returns the object if it does not contain any
missing values, and signals an error otherwise.
\code{na.omit} returns the object with incomplete cases removed.
\code{na.pass} returns the object unchanged.
}
\details{
At present these will handle vectors, matrices and data frames
comprising vectors and matrices (only).
If \code{na.omit} removes cases, the row numbers of the cases form the
\code{"na.action"} attribute of the result, of class \code{"omit"}.
\code{na.exclude} differs from \code{na.omit} only in the class of the
\code{"na.action"} attribute of the result, which is
\code{"exclude"}. This gives different behaviour in functions making
use of \code{\link{naresid}} and \code{\link{napredict}}: when
\code{na.exclude} is used the residuals and predictions are padded to
the correct length by inserting \code{NA}s for cases omitted by
\code{na.exclude}.
}
\references{
Chambers, J. M. and Hastie, T. J. (1992)
\emph{Statistical Models in S.}
Wadsworth & Brooks/Cole.
}
\seealso{
\code{\link{na.action}};
\code{\link{options}} with argument \code{na.action} for setting NA actions;
and \code{\link{lm}} and \code{\link{glm}} for functions using these.
\code{\link{na.contiguous}} as alternative for time series.
}
\examples{
DF <- data.frame(x = c(1, 2, 3), y = c(0, 10, NA))
na.omit(DF)
m <- as.matrix(DF)
na.omit(m)
stopifnot(all(na.omit(1:3) == 1:3)) # does not affect objects with no NA's
try(na.fail(DF)) #> Error: missing values in ...
options("na.action")
}
\keyword{NA}