我已经阅读了大多数有关使用dplyr进行整洁评估和编程的文档,但是无法解决这个(简单)问题。
我想用dplyr进行编程,并将列名称作为字符串提供给函数。
df <- tibble(
g1 = c(1, 1, 2, 2, 2),
g2 = c(1, 2, 1, 2, 1),
a = sample(5),
b = sample(5)
)
my_summarise <- function(df, group_var) {
df %>%
group_by(group_var) %>%
summarise(a = mean(a))
}
my_summarise(df, 'g1')
这给了我Error : Column 'group_var' is unknown
。
为了使这项工作有效,我必须在my_summarise函数内部进行哪些更改?
我们也可以用ensym
用!!
my_summarise <- function(df, group_var) {
df %>%
group_by(!!rlang::ensym(group_var)) %>%
summarise(a = mean(a))
}
my_summarise(df, 'g1')
或另一个选择是 group_by_at
my_summarise <- function(df, group_var) {
df %>%
group_by_at(vars(group_var)) %>%
summarise(a = mean(a))
}
my_summarise(df, 'g1')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句