I want to put ifelse
opart inside dplyr
case_when
function:
library(mutate)
data(mtcars)
mtcars %>%
dplyr::mutate(myVar = case_when(
mpg > 20 ~ ifelse(cyl == 6, 1, NA_real_),
TRUE ~ 2
))
into it's own function:
myFun <- function(x) {
ifelse(cyl == x, 1, NA_real_)
}
mtcars %>%
dplyr::mutate(myVar = case_when(
mpg > 20 ~ myFun(6),
TRUE ~ 2
))
But it returns an error:
Error in ifelse(cyl == x, 1, NA_real_) : object 'cyl' not found
How should I rewrite the function to make it work?