purrr (version 1.0.2)

every: Do every, some, or none of the elements of a list satisfy a predicate?

Description

  • some() returns TRUE when .p is TRUE for at least one element.

  • every() returns TRUE when .p is TRUE for all elements.

  • none() returns TRUE when .p is FALSE for all elements.

Usage

every(.x, .p, ...)

some(.x, .p, ...)

none(.x, .p, ...)

Value

A logical vector of length 1.

Arguments

.x

A list or vector.

.p

A predicate function (i.e. a function that returns either TRUE or FALSE) specified in one of the following ways:

  • A named function, e.g. is.character.

  • An anonymous function, e.g. \(x) all(x < 0) or function(x) all(x < 0).

  • A formula, e.g. ~ all(.x < 0). You must use .x to refer to the first argument). Only recommended if you require backward compatibility with older versions of R.

...

Additional arguments passed on to .p.

Examples

Run this code
x <- list(0:10, 5.5)
x |> every(is.numeric)
x |> every(is.integer)
x |> some(is.integer)
x |> none(is.character)

# Missing values are propagated:
some(list(NA, FALSE), identity)

# If you need to use these functions in a context where missing values are
# unsafe (e.g. in `if ()` conditions), make sure to use safe predicates:
if (some(list(NA, FALSE), rlang::is_true)) "foo" else "bar"

Run the code above in your browser using DataLab