首页 > 解决方案 > 计算R中季度数据的年平均值

问题描述

我有一个数据框,每季度报告一些 TS 数据,如下

quarter region value
2018T4    A      4
2018T3    A      2
2018T2    A      3
2018T1    A      9
2018T4    B      6
2018T3    B      2
2018T2    B      5
2018T1    B      8
2017T4    A      2
...

我想汇总季度观察结果并将它们平均以获得每个年份和地区的年度平均值,因此

quarter region value
2018      A     4.5
2018      B     5.25
2017      A     2
...

什么是合适的方法?

标签: rdataframetime-seriesaggregatezoo

解决方案


我们可以从 year 中删除季度信息,然后meanyearregion

aggregate(value~year+region, transform(df, year = sub('T.*', '', quarter)), mean)

#  year region value
#1 2017      A  2.00
#2 2018      A  4.50
#3 2018      B  5.25

同样使用dplyr

library(dplyr)
df %>%
  group_by(year = sub('T.*', '', quarter), region) %>%
  summarise(value = mean(value))

推荐阅读