0

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
Erazijus
  • 71
  • 5

0 Answers0