if_
conditionsif_none
, if_any
and if_all
test the elements of the list.
if_all(1:10, ~ .x < 11, ~ return(letters[1:10]))
#> [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
if_any(1:10, is.numeric, ~ print("Yay!"))
#> [1] "Yay!"
if_none(1:10, is.character, ~ rnorm(10))
#> [1] -0.03839583 -0.38934563 0.45104740 0.29074200 0.23430065
#> [6] 1.61321574 -1.16518134 1.48326698 -0.20058520 -0.47112717
The defaut for all .p
is isTRUE
. So you can:
if_then
performs a simple “if this then do that”:
if_not
runs .f
if .p(.x)
is not TRUE :
And if_else
is a wrapper around base::ifelse()
that works with mappers.
If you want these function to return a value, you need to wrap these values into a mapper / a function. E.g, to return a vector, you’ll need to write if_then(1, is.numeric, ~ "Yay")
.