I ran into a problem, when dplyr would not calculate mean by group. Only whole column's mean is calculated, when mean by group is needed. As you can see, I grouped by Country
, but returned Year_average
column still consists of whole Quarterly
column mean, not mean by group.
data <- structure(list(Country = c("Argentina", "Argentina", "Argentina",
"USA", "USA", "USA"), Indicator = c("Inflation", "Inflation",
"Inflation", "Inflation", "Inflation", "Inflation"), Year = c("Y2022M3",
"Y2022M6", "Y2022M9", "Y2022M3", "Y2022M6", "Y2022M9"), Quarterly = c(54.4386140151883,
61.641920578111, 76.9071987097229, 8.0003895903483, 8.58063131836198,
8.31761217342508), Monthly = c(56.0677775901444, 64.7393874239595,
81.4559428900954, 8.55758636823278, 8.99522060858813, 8.22241023434256
)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-6L))
data %>%
group_by(Country) %>%
mutate(Year_average = mean(Quarterly, na.rm = T))
# A tibble: 6 x 6
# Groups: Country [2]
Country Indicator Year Quarterly Monthly Year_average
<chr> <chr> <chr> <dbl> <dbl> <dbl>
1 Argentina Inflation Y2022M3 54.4 56.1 36.3
2 Argentina Inflation Y2022M6 61.6 64.7 36.3
3 Argentina Inflation Y2022M9 76.9 81.5 36.3
4 USA Inflation Y2022M3 8.00 8.56 36.3
5 USA Inflation Y2022M6 8.58 9.00 36.3
6 USA Inflation Y2022M9 8.32 8.22 36.3