[英]Using dplyr group_by in a function
我試圖在本地函數中使用dplyr的group_by,例如:
testFunction <- function(df, x) {
df %>%
group_by(x) %>%
summarize(mean.Petal.Width = mean(Petal.Width))
}
testFunction(iris, Species)
我得到一個錯誤“...未知變量分組依據:x”我嘗試了group_by_,它給了我整個數據集的摘要。 有人知道如何解決這個問題嗎?
提前致謝!
這里是新的工作方法之一enquo
從dplyr
,其中enquo
采取串並轉換成quosure
其獲取評估由unquoting( UQ
或!!
中) group_by
, mutate
, summarise
等。
library(dplyr)
testFunction <- function(df, x) {
x <- enquo(x)
df %>%
group_by(!! x) %>%
summarize(mean.Petal.Width = mean(Petal.Width))
}
testFunction(iris, Species)
# A tibble: 3 x 2
# Species mean.Petal.Width
# <fctr> <dbl>
#1 setosa 0.246
#2 versicolor 1.326
#3 virginica 2.026
我讓它像這樣工作:
testFunction <- function(df, x) {
df %>%
group_by(get(x)) %>%
summarize(mean.Petal.Width = mean(Petal.Width))
}
testFunction(iris,"Species")
我將x
更改為get(x)
,將Species
更改為testFunction(iris,...)
"Species"
testFunction(iris,...)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.