dplyr - как перекодировать в NA? - PullRequest
1 голос
/ 09 апреля 2020

Я пытаюсь сделать следующее:

data %>%
   mutate_at(vars(Q1), recode, "I don't agree" = 0, "I agree" = 1, "I don't know" = NA)

Но я получаю следующую ошибку:

Q1 must be a double vector, not a logical vector

Как можно точно перекодировать "Я не знаю", чтобы пропущенные значения при использовании dplyr?

Ответы [ 2 ]

2 голосов
/ 09 апреля 2020

Используя набор данных iris, этот код работает

library(dplyr)
iris %>% 
  mutate_at(vars(Species), recode, setosa = 0, versicolor = 1, virginica = NA_real_)

В основном вам нужно использовать NA_real_ вместо простого NA

1 голос
/ 09 апреля 2020

Другой вариант - передать именованный вектор

library(dplyr)
iris %>% 
   mutate_at(vars(Species), ~ setNames(c(0, 1, NA),
          c('setosa', 'versicolor', 'virginica'))[as.character(.)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...