Vectorised if
Compared to the base ifelse()
, this function is more strict.
It checks that true
and false
are the same type. This
strictness makes the output type more predictable, and makes it somewhat
faster.
if_else(condition, true, false, missing = NULL)
condition |
Logical vector |
true, false |
Values to use for |
missing |
If not |
Where condition
is TRUE
, the matching value from
true
, where it's FALSE
, the matching value from false
,
otherwise NA
.
x <- c(-5:5, NA) if_else(x < 0, NA_integer_, x) if_else(x < 0, "negative", "positive", "missing") # Unlike ifelse, if_else preserves types x <- factor(sample(letters[1:5], 10, replace = TRUE)) ifelse(x %in% c("a", "b", "c"), x, factor(NA)) if_else(x %in% c("a", "b", "c"), x, factor(NA)) # Attributes are taken from the `true` vector,
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.