Custom ifelse function that evaluates missing (NA) values. If the logical argument (x) compares to a value that is `NA`, it is set to `FALSE`

if_else2(x, a, b)

Arguments

x

A logical argument

a

value if `x` is `TRUE`

b

value if `x` is `FALSE`

Value

a or b based on the evaluation of x

Details

unlike the base ifelse() function, if_else2() is able to evaluate NA as either a or b. In base ifelse(), anything compared to NA will produce NA, which can break a function. When dealing with large datasets like the CCHS, there are many missing (NA) values. That means a special ifelse function like if_else2() is needed in order for other functions to not break

Examples

age <- 12 status <- if_else2((age < 18), "child", "invalid age") print(status)
#> [1] "child"
age <- NA status <- if_else2((age < 18), "child", "invalid age") print(status)
#> [1] "invalid age"