if_else2 | R Documentation |
Vectorised if else that if true returns first possibility otherwise returns
second possibility (even if the condition is a missing value).
When searching character vectors an alternative solution is to use
str_detect2()
.
if_else2(condition, true, false, error = FALSE)
condition |
A logical vector |
true , false |
Vectors to use for Both
|
error |
A logical value. If |
Where condition is TRUE
, the matching value from true
, where it's FALSE
or NA
, the matching value from false
.
ifelse()
and dplyr::if_else()
.
# consider the following data frame
data <- tibble::tibble(
x = c(TRUE, FALSE, NA),
y = c("x is false", NA, "hello")
)
# with a single vector if_else2() behaves the same as the default call to if_else().
dplyr::mutate(data,
y1 = dplyr::if_else(y != "x is false", "x is true", y),
y2 = if_else2(y != "x is false", "x is true", y)
)
# however in the case of a second vector the use of
# if_else2() does not introduce missing values
dplyr::mutate(data,
x1 = dplyr::if_else(stringr::str_detect(y, "x is false"), FALSE, x),
x2 = if_else2(stringr::str_detect(y, "x is false"), FALSE, x)
)
# in the case of regular expression matching an alternative is to use
# str_detect2()
dplyr::mutate(data,
x3 = dplyr::if_else(str_detect2(y, "x is false"), FALSE, x)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.