Are All Values True?

Given a set of logical vectors, are all of the values true?

all(..., na.rm = FALSE)
zero or more logical vectors. Other objects of zero length are ignored, and the rest are coerced to logical ignoring any class.
logical. If true NA values are removed before the result is computed.

This is a generic function: methods can be defined for it directly or via the Summary group generic. For this to work properly, the arguments ... 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 primitive function.


The value is a logical vector of length one.Let x denote the concatenation of all the logical vectors in ... (after coercion), after removing NAs if requested by na.rm = TRUE.The value returned is TRUE if all of the values in x are TRUE (including if there are no values), and FALSE if at least one of the values in x is FALSE. Otherwise the value is NA (which can only occur if na.rm = FALSE and ... contains no FALSE values and at least one NA value).


That all(logical(0)) is true is a useful convention: it ensures that

all(all(x), all(y)) == all(x, y)
even if x has length zero.

S4 methods

This is part of the S4 Summary group generic. Methods for it must use the signature x, ..., na.rm.


Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

See Also

any, the ‘complement’ of all, and stopifnot(*) which is an all(*) ‘insurance’.

  • all
library(base) 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.
Documentation reproduced from package base, version 3.1.3, License: Part of R 3.1.3

Community examples at Jan 18, 2017 base v3.3.2

Pass a vector to `all()`, and it will return `TRUE` if all the elements are `TRUE`. ```{r} all(1:5 > 0) all(-2:2 > 0) ``` Pass several numbers to `all()`, and it will return `TRUE` if all the arguments are `TRUE`. ```{r} all(TRUE, 99 > 66, 64 %% 8 == 0) all(TRUE, 99 < 66, 64 %% 8 == 0) ``` In fact, you can pass vectors into several arguments, and everything gets combined together before checking if all the values are `TRUE`. ```{r} all( 1:5 > 0,, 5), 99 > 66,, 64, 8) %% 8 == 0 ) ``` If there are any missing values, then `all()` returns `NA`. ```{r} all(1:5 > 0, NA) ``` You can exclude missing values by setting `na.rm = TRUE`. ```{r} all(1:5 > 0, NA, na.rm = TRUE) ```