我有以下示例,其中我将一个简单的数据帧传递给一个汇总列的函数 . 汇总列的名称 s
,我想将其作为函数的参数:
df <- data.frame(id = c(1,1,1,1,1,2,2,2,2,2),
a=c(1:10),
b=c(10:19))
sum <- function(df, s){
df <- df %>%
group_by(id) %>%
summarize(s = sum(a))
return(df)
}
sum(df = df, s = "summarizing.column.label")
但是,无论我设置的值如何,汇总列总是会得到相同的名称 s
. 有没有办法改变它?
编辑:我想要的输出是:
sum(df = df, s = "summarizing.column.label")
id summarizing.column.label
<dbl> <int>
1 1.00 15
2 2.00 40
sum(df = df, s = "a")
id a
<dbl> <int>
1 1.00 15
2 2.00 40
2 回答
如果我们传递一个带引号的参数,那么一个选项是在
summarise
之后,我们使用rename_at
或者另一种选择是利用
:=
与!!
或者在
summarise
内sumf(df,s =“summarizing.column.label”)
试试这个: