整洁的评估:无效的参数错误

时间:2018-03-20 19:23:12

标签: r dplyr tidyeval

我正在根据这篇文章进行整洁的评估: http://dplyr.tidyverse.org/articles/programming.html

这个演讲: https://speakerdeck.com/hadley/tidy-evaluation-programming-with-ggplot2-and-dplyr

从文章中运行一些代码,我得到了无效的参数错误。这就是我的目的:

library(tidyverse)
my_mutate = function(df, var){
    n = 10
    var = enquo(var) #also tried enexpr
    mutate(df, y = !!var)
}

df = tibble(x = 1)
n = 100
my_mutate(df, x+n)

此代码应该返回

#>        x     y
# 1     1.00    101

相反,我得到: mutate_impl(.data,dots)中的错误:无效的参数类型

出现此错误的其他代码,我认为可行:

grouped_mean = function(df, group_var, summar_var){
    group_var = enquo(group_var)
    summar_var = enquo(summar_var)

df %>%
    group_by(!!group_var) %>%
    summarise(mean = mean(!!summar_var))
}

grouped_mean(df = mtcars, group_var = cyl,  summar_var = mpg)    

我再次得到: mutate_impl(.data,dots)中的错误:无效的参数类型

我尝试用quo()和其他一些东西替换我的enquo(),而且我不知道自己做错了什么。要么我遗漏了某些东西,要么这段代码没有像文章和演示文稿中所解释的那样起作用。在此先感谢您的帮助!

0 个答案:

没有答案