【发布时间】:2018-10-26 13:37:57
【问题描述】:
我有以下测试数据:
library(tidyverse)
df <- tibble(
g1 = c(1, 1, 2, 2, 2),
g2 = c(a, a, a, b, b),
a = sample(5),
b = sample(5)
)
我想编写一个函数,用平均值汇总分组列,我希望我可以让结果列以“mean_”为前缀
my_summarise1 <- function(df, group_var, summarise_var) {
df %>%
group_by_at(.vars = group_var) %>%
summarise_at(.vars = summarise_var, .funs= mean) %>%
rename_at(.vars= summarise_var, .funs=paste('mean_', .))
}
没有 rename_at 行它可以正常工作,但它会引发错误:
my_summarise1(df, vars(g1,g2),vars(a,b))
R 以
响应 Error: `.funs` must contain one renaming function, not 4
我应该如何有效地为新列名添加前缀?
小问题:是否可以避免 vars() 或在参数周围加引号 调用函数时的列名?
知道这两个小东西会大大增强我的代码,在此先感谢大家的帮助。
【问题讨论】: