if_else {lest} | R Documentation |
Vectorised if
Description
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.
Usage
if_else(condition, true, false, missing = NULL)
Arguments
condition |
Logical vector |
true , false |
Values to use for |
missing |
If not |
Value
Where condition
is TRUE
, the matching value from
true
, where it's FALSE
, the matching value from false
,
otherwise NA
.
Examples
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,
[Package lest version 1.1.0 Index]