首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mutate和mutate_的区别

mutate和mutate_的区别
EN

Stack Overflow用户
提问于 2018-06-19 02:22:50
回答 1查看 716关注 0票数 0

通过这篇文章,我正在学习如何处理不平衡数据:https://www.r-bloggers.com/dealing-with-unbalanced-data-in-machine-learning/

而变异是一种简单的方法,可以用"dplyr“中的新值替换原始的NA值。

下面是出错的代码:

代码语言:javascript
复制
    models <- list(original = model_rf,
                       under = model_rf_under,
                       over = model_rf_over,
                       smote = model_rf_smote,
                       rose = model_rf_rose)
    comparison <- data.frame(model = names(models),
                         Sensitivity = rep(NA, length(models)),
                         Specificity = rep(NA, length(models)),
                         Precision = rep(NA, length(models)),
                         Recall = rep(NA, length(models)),
                         F1 = rep(NA, length(models)))

    for (name in names(models)) {
  model <- get(paste0("cm_", name))

  comparison[comparison$model == name, ] <- filter(comparison, model == name) %>%
    mutate(Sensitivity = model$byClass["Sensitivity"],
           Specificity = model$byClass["Specificity"],
           Precision = model$byClass["Precision"],
           Recall = model$byClass["Recall"],
           F1 = model$byClass["F1"])
}

然而,当我运行它时,我总是得到这样的错误:$ operator对于原子向量是无效的。我仔细检查了代码,发现问题可能来自于函数"mutate“。我试着使用mutate_,它是有效的。

但我不知道它为什么会起作用。我非常想知道mutate()和mutate_()之间的区别,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-06-19 02:38:12

我不能测试它,因为我没有任何数据,所以可能有一些bug。但是,您应该尝试这样做:

代码语言:javascript
复制
library(dplyr)
get_results <- function(name) {
  model <- sym(paste0("cm_", name))

  list(data.frame(
    Sensitivity = !!model$byClass["Sensitivity"],
    Specificity = !!model$byClass["Specificity"],
    Precision = !!model$byClass["Precision"],
    Recall = !!model$byClass["Recall"],
    F1 = !!model$byClass["F1"]
  ))
}

comparison <- comparison %>%
  group_by(model) %>%
  mutate(temp_obj = get_results(model))) %>%
  unnest()

这完全取代了for-循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50915378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档