【问题标题】:Using dplyr to mutate variables which meet a certain criteria, while keeping the remaining values the same使用 dplyr 对满足特定条件的变量进行变异,同时保持其余值相同
【发布时间】:2019-12-03 17:15:42
【问题描述】:

考虑以下数据集:

id = c(1:10)
test_score = c(55, 66, 91, 37, 55, 78, 81, 83, 69, NA)
data = data.frame(id, test_score)

我想改变数据,使所有超过 60 分的分数都显示为“及格”,其余分数保持不变。我还必须跳过 NA 值,这是我迄今为止尝试过的简化版本:

data = data %>% 
    mutate(test_score_new = ifelse(test_score = NA, NA, 
          ifelse(test_score >= 60, "Pass", test_score)))

最后的“test_score”是我认为我出错的地方,我已经成功使用 ifelse 为 TRUE/FALSE 值使用类似的代码,但我不确定如何“保留”某些不符合的值标准。

【问题讨论】:

    标签: r conditional-statements dplyr


    【解决方案1】:

    问题在于test_score = NA,它是一个赋值运算符,而不是一个比较==。另外,NA,我们有is.na

    data %>% 
     mutate(test_score_new = ifelse(is.na(test_score), NA, 
            ifelse(test_score >= 60, "Pass", test_score)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-03
      • 2014-04-15
      • 2018-06-24
      • 2021-11-16
      • 1970-01-01
      • 2018-06-29
      • 2021-05-19
      • 1970-01-01
      相关资源
      最近更新 更多