I am trying to use `dplyr::case_when` within `dplyr::mutate` to create a new variable where I set some values to missing and recode other values simultaneously.

However, if I try to set values to `NA`, I get an error saying that we cannot create the variable `new` because `NA`s are logical:

> 
> Error in mutate\_impl(.data, dots) :  
> 
>  Evaluation error: must be type double, not logical.
> 
> 
> 

Is there a way to set values to `NA` in a non-logical vector in a data frame using this?

```
library(dplyr)    

# Create data
df <- data.frame(old = 1:3)

# Create new variable
df <- df %>% dplyr::mutate(new = dplyr::case_when(old == 1 ~ 5,
                                                  old == 2 ~ NA,
                                                  TRUE ~ old))

# Desired output
c(5, NA, 3)

```