Похоже, что вы работаете в tidyverse
, используйте purrr::map
, чтобы применить несколько функций суммирования:
require(tidyverse)
operations <- c("mean", "sum", "median")
dfs <- operations %>%
map(~ df %>%
group_by(Year) %>%
summarise_if(is.numeric, .x, na.rm=TRUE))
> class(dfs)
[1] "list"
> dfs[[1]]
# A tibble: 3 x 3
Year a b
<int> <dbl> <dbl>
1 2001 0.250 0.0600
2 2002 0.201 0.0686
3 2004 0.253 0.0222
Данные
n <- 100
df <- data.frame(Year=sample(2001:2005, replace = TRUE),
a=rnorm(n),
b=rnorm(n))
> df %>% head()
Year a b
1 2001 -0.002929493 -0.29111621
2 2001 1.590653841 -0.39661866
3 2002 1.041438363 -0.62323955
4 2004 1.854152790 -0.06730789
5 2002 0.396443422 0.66564886
6 2001 0.174203172 0.83243156