【问题标题】:dplyr - how to recode to NA?dplyr - 如何重新编码为 NA?
【发布时间】:2020-04-09 13:27:24
【问题描述】:

我正在尝试以下方法:

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 正确地将“我不知道”重新编码为缺失值?

【问题讨论】:

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

标签: r dplyr na recode


【解决方案1】:

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

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

基本上你需要使用NA_real_ 而不是简单的NA

【讨论】:

    【解决方案2】:

    另一种选择是传递一个命名向量

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多