Tenho cerca de 40 colunas que quero resumir por grupo usando dplyr::summarize()
. Mas cada coluna será resumida com uma função diferente: algumas com mean()
, algumas com sum()
, algumas com min()
e algumas com max()
. Apenas uma função será aplicada a cada coluna. Tenho uma tabela de consulta para corresponder cada nome de coluna com a função apropriada. Qual é a melhor maneira de fazer isso dplyr::summarize()
sem ter que escrever cada declaração individualmente?
Aqui está um exemplo de tabela de consulta usando mtcars. O código abaixo não fornece o resultado desejado. Ele aplica todas as dez funções de resumo a todas as dez colunas para um total de 100 resumos, onde eu quero apenas dez resumos, um para cada coluna.
library(dplyr)
lookup_table <- tibble(
variable = c('mpg', 'disp', 'hp', 'drat', 'wt', 'qsec', 'vs', 'am', 'gear', 'carb'),
summ_fn = list(mean, max, min, sum, mean, mean, median, mean, sum, max)
)
mtcars %>%
group_by(cyl) %>%
summarize(across(all_of(lookup_table$variable), .fns = lookup_table$summ_fn))