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