Я пытаюсь использовать dplyr::case_when
внутри dplyr::mutate
, чтобы создать новую переменную, в которой я установил некоторые значения в отсутствие и перекодировал другие значения одновременно.
Однако, если я пытаюсь установить значения NA
, я получаю сообщение об ошибке, говорящее, что мы не можем создать переменную new
, потому что NA
являются логическими:
Ошибка в файле mutate_impl (.data, точки):
Ошибка оценки: должен быть тип double, а не логический.
Есть ли способ установить значения NA
в нелогичном векторе в кадре данных, используя это?
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)