在dplyr的当前版本,select
参数可以按值传递:关于引用变量,select和group_by之间的Dplyr差异?
variable <- "Species"
iris %>%
select(variable)
# Species
#1 setosa
#2 setosa
#3 setosa
#4 setosa
#5 setosa
#6 setosa
#...
但group_by
参数不能按值传递:
iris %>%
group_by(variable) %>%
summarise(Petal.Length = mean(Petal.Length))
# Error in grouped_df_impl(data, unname(vars), drop) :
# Column `variable` is unknown
的documented dplyr::select behaviour是
iris %>% select(Species)
并且记录的documented dplyr::group_by behaviour是
iris %>%
group_by(Species) %>%
summarise(Petal.Length = mean(Petal.Length))
- 为什么
select
和group_by
对于不同的,以按值传递参数呢? - 为什么第一个
select
电话正常工作,并将在未来继续工作? - 为什么第一个
group_by
调用不起作用?我试图找出quo()
,enquo()
和!!
的什么组合,我应该用它来工作。
,我需要这个,因为我想创建一个函数,分组变量作为输入参数,如果可能的分组变量应该给出一个字符串,因为其他两个函数参数已经作为字符串给出。
这不是努力的一部分[使用整齐的评估语义而不是标准评估](http://dplyr.tidyverse.org/reference/se-deprecated.html)? – Lyngbakr
在'browseVignettes(package =“dplyr”)'中,您会发现一个关于编程的内容,涵盖了什么是/将会是惯用的。 – Frank
几天前,我阅读了[编程中的dplyr小插图](https://cran.r-project.org/web/packages/dplyr/vignettes/programming.html),现在阅读[rlang整理评估小贴士] (https://cran.r-project.org/web/packages/rlang/vignettes/tidy-evaluation.html)。 –