0

这是一个我似乎无法解决的非标准评估问题。我想做一个输入列名并输出摘要的函数。对于此功能,重要的是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 }}))
}

任何帮助是极大的赞赏。

4

1 回答 1

4

使用:=符号分配列名

library(dplyr)

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

get_summarised(mtcars, mpg)
#       mpg
#1 20.09062
于 2019-12-06T11:18:50.420 回答