在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)。 –