我已经检查了一些关于时间序列聚合的问题,但是没找到我想要的东西。
我有一个zoo
每周数据的对象超过10年,我已经计算了这一系列的每月滚动平均值。我想使用与此相对应的月度数据,并为此将每月的最后一周数据点(作为整个月的代表)拉入单独的时间序列。
我已经尝试了aggregate
ts功能,但由于间距不均匀(即4周并不总是一个月等),我遇到了麻烦。
答案 0 :(得分:1)
月份长度不同的事实应该没问题。请看以下示例:
> library(xts)
> dates <- as.Date("2013-01-01") + 7*(0:52)
> y.week <- zoo(rnorm(365),order.by=dates)
> head(y.week)
2013-01-01 2013-01-08 2013-01-15 2013-01-22 2013-01-29 2013-02-05
0.3648757 -0.7247121 0.4815929 0.5967042 1.6272563 0.8472303
> y.mon <- aggregate(y.week,
+ by = format(dates,format="%Y-%m"),
+ FUN=sum)
> head(y.mon)
2013-01 2013-02 2013-03 2013-04 2013-05 2013-06
2.3457170 1.9640368 -0.3259688 -0.8710992 0.5430847 -0.1107915
查看strptime
的帮助页面,查看可以使用的格式字符串
代替"%Y-%m"
以上。