blob: 9c09554cc6da12964e264ae137884a5366994cc9 [file] [log] [blame]
% File src/library/base/man/all.Rd
% Part of the R package, https://www.R-project.org
% Copyright 1995-2010 R Core Team
% Distributed under GPL 2 or later
\name{all}
\title{Are All Values True?}
\usage{
all(\dots, na.rm = FALSE)
}
\alias{all}
\description{
Given a set of logical vectors, are all of the values true?
}
\arguments{
\item{\dots}{zero or more logical vectors. Other objects of zero
length are ignored, and the rest are coerced to logical ignoring
any class.}
\item{na.rm}{logical. If true \code{NA} values are removed before
the result is computed.}
}
\details{
This is a generic function: methods can be defined for it
directly or via the \code{\link[=S3groupGeneric]{Summary}} group generic.
For this to work properly, the arguments \code{\dots} should be
unnamed, and dispatch is on the first argument.
Coercion of types other than integer (raw, double, complex, character,
list) gives a warning as this is often unintentional.
This is a \link{primitive} function.
}
\value{
The value is a logical vector of length one.
Let \code{x} denote the concatenation of all the logical vectors in
\code{...} (after coercion), after removing \code{NA}s if requested by
\code{na.rm = TRUE}.
The value returned is \code{TRUE} if all of the values in \code{x} are
\code{TRUE} (including if there are no values), and \code{FALSE} if at
least one of the values in \code{x} is \code{FALSE}. Otherwise the
value is \code{NA} (which can only occur if \code{na.rm = FALSE} and
\code{\dots} contains no \code{FALSE} values and at least one
\code{NA} value).
}
\note{
That \code{all(logical(0))} is true is a useful convention:
it ensures that
\preformatted{all(all(x), all(y)) == all(x, y)
}
even if \code{x} has length zero.
}
\section{S4 methods}{
This is part of the S4 \code{\link[=S4groupGeneric]{Summary}}
group generic. Methods for it must use the signature
\code{x, \dots, na.rm}.
}
\references{
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988)
\emph{The New S Language}.
Wadsworth & Brooks/Cole.
}
\seealso{
\code{\link{any}}, the \sQuote{complement} of \code{all}, and
\code{\link{stopifnot}(*)} which is an \code{all(*)}
\sQuote{insurance}.
}
\examples{
range(x <- sort(round(stats::rnorm(10) - 1.2, 1)))
if(all(x < 0)) cat("all x values are negative\n")
all(logical(0)) # true, as all zero of the elements are true.
}
\keyword{logic}