Parallel any and all
pany.RdThese functions are wrappers around vctrs::vec_pany() and
vctrs::vec_pall(), variants of any() and all() that work in parallel
on multiple inputs at once. They work similarly to how pmin() and pmax()
are parallel variants of min() and max().
pany_na() and pall_na() are variants that check for NA values in
parallel.
Arguments
- ...
[
logical()each] Logical vectors with the same size.- .na
[
TRUE|FALSE|NA] What to return forNAvalues.- .nan
[
TRUE|FALSE] ShouldNaNvalues be treated asNA?
Value
[logical()] A logical vector of the same size as the inputs.
Examples
a <- c(TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, NA, NA, NA)
b <- c(TRUE, FALSE, NA, TRUE, FALSE, NA, TRUE, FALSE, NA)
# Default behavior treats missings like `|` does:
pany(a, b)
#> [1] TRUE TRUE TRUE TRUE FALSE NA TRUE NA NA
a | b
#> [1] TRUE TRUE TRUE TRUE FALSE NA TRUE NA NA
# Default behavior treats missings like `&` does:
pall(a, b)
#> [1] TRUE FALSE NA FALSE FALSE FALSE NA FALSE NA
a & b
#> [1] TRUE FALSE NA FALSE FALSE FALSE NA FALSE NA
# Remove missings from the computation, like `na_rm = TRUE`:
pany(a, b, .na = FALSE)
#> [1] TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE
(a & !is.na(a)) | (b & !is.na(b))
#> [1] TRUE TRUE TRUE TRUE FALSE FALSE TRUE FALSE FALSE
pall(a, b, .na = TRUE)
#> [1] TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE TRUE
(a | is.na(a)) & (b | is.na(b))
#> [1] TRUE FALSE TRUE FALSE FALSE FALSE TRUE FALSE TRUE
# Check for missings in parallel:
pany_na(a, b) #> c(FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE)
#> [1] FALSE FALSE TRUE FALSE FALSE TRUE TRUE TRUE TRUE
pall_na(a, b) #> c(FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE)
#> [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE