在函数中使用 dplyr group_by
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_ 它给了我整个数据集的摘要。
有人知道我该如何解决这个问题吗?
提前致谢!
我是这样工作的:
testFunction <- function(df, x) {
df %>%
group_by(get(x)) %>%
summarize(mean.Petal.Width = mean(Petal.Width))
}
testFunction(iris,"Species")
我在 testFunction(iris,...)
中将 x
更改为 get(x)
,并将 Species
更改为 "Species"
。
这是使用来自 dplyr
的新 enquo
的一种方法,其中 enquo
获取字符串并转换为 quosure
,后者通过取消引号 (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
我正在尝试在本地函数中使用 dplyr 的 group_by,例如:
testFunction <- function(df, x) {
df %>%
group_by(x) %>%
summarize(mean.Petal.Width = mean(Petal.Width))
}
testFunction(iris, Species)
我收到错误消息“...分组依据的未知变量:x” 我试过 group_by_ 它给了我整个数据集的摘要。 有人知道我该如何解决这个问题吗?
提前致谢!
我是这样工作的:
testFunction <- function(df, x) {
df %>%
group_by(get(x)) %>%
summarize(mean.Petal.Width = mean(Petal.Width))
}
testFunction(iris,"Species")
我在 testFunction(iris,...)
中将 x
更改为 get(x)
,并将 Species
更改为 "Species"
。
这是使用来自 dplyr
的新 enquo
的一种方法,其中 enquo
获取字符串并转换为 quosure
,后者通过取消引号 (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