我正在根据这篇文章进行整洁的评估: 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(),而且我不知道自己做错了什么。要么我遗漏了某些东西,要么这段代码没有像文章和演示文稿中所解释的那样起作用。在此先感谢您的帮助!