У меня есть следующие тестовые данные:
library(tidyverse)
df <- tibble(
g1 = c(1, 1, 2, 2, 2),
g2 = c(a, a, a, b, b),
a = sample(5),
b = sample(5)
)
Я хотел бы написать функцию, которая суммирует сгруппированные столбцы со средним значением, и я хотел бы, чтобы получающиеся столбцы имели префикс «среднее _»
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 () или кавычек вокруг параметров
имена столбцов при вызове функции?
Знание этих двух небольших вещей значительно улучшило бы мой код, большое спасибо всем заранее за помощь.