有没有办法输入 dplyr::summarise 变量?

Is there a way to input dplyr::summarise variables?

这是一个我似乎无法解决的非标准评估问题。我想制作一个输入列名并输出摘要的函数。对于此功能,重要的是 summarise(name,...) 可以像这样分配为输入:

mtcars %>% 
  summarise(mpg = mean(mpg))

这个有效:

get <- function(col){
  mtcars %>% 
    summarise(mean = mean({{ col }}))
}

get(mpg)

但这不是,而这正是我需要的。

get <- function(col){
  mtcars %>% 
    summarise({{ col }} = mean({{ col }}))
}

非常感谢任何帮助。

使用:= 表示法分配列名

library(dplyr)

get_summarised<- function(df, col){
  df %>% summarise({{col}} := mean({{ col }}))
}

get_summarised(mtcars, mpg)
#       mpg
#1 20.09062