4

我正在根据这篇文章进行整洁的评估: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() 以及其他一些东西,但我不知道我做错了什么。要么我遗漏了一些东西,要么此代码无法按照文章和演示文稿中的说明工作。提前感谢您的帮助!

4

0 回答 0