dplyr-如何重新编码为NA?

dplyr-如何重新编码为NA?,r,dplyr,na,recode,R,Dplyr,Na,Recode,我正在尝试以下方法: 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将“我不知道”重新编码为缺少的值?使用iris数据集,此代码有效 library(dplyr) iris %>% mutat

我正在尝试以下方法:

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将“我不知道”重新编码为缺少的值?

使用
iris
数据集,此代码有效

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

基本上,您需要使用
NA\u real\uu
而不是简单的
NA
使用
iris
数据集,此代码有效

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

基本上,您需要使用
NA\u real\u
而不是简单的
NA

另一个选项是传递命名向量

library(dplyr)
iris %>% 
   mutate_at(vars(Species), ~ setNames(c(0, 1, NA),
          c('setosa', 'versicolor', 'virginica'))[as.character(.)])

另一个选项是传递命名向量

library(dplyr)
iris %>% 
   mutate_at(vars(Species), ~ setNames(c(0, 1, NA),
          c('setosa', 'versicolor', 'virginica'))[as.character(.)])

您能否使用
dput
功能发布示例数据,以便用户更好地帮助您?谢谢您。无论如何,尝试使用玩具数据集时,问题应该是如何分配NAC,您是否可以使用
dput
功能发布示例数据,以便用户能够更好地帮助您?谢谢您。无论如何,尝试使用玩具数据集时,问题应该是分配NA