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