从每周数据中获取每月时间序列

时间:2014-06-26 13:48:54

标签: r time-series

我已经检查了一些关于时间序列聚合的问题,但是没找到我想要的东西。

我有一个zoo每周数据的对象超过10年,我已经计算了这一系列的每月滚动平均值。我想使用与此相对应的月度数据,并为此将每月的最后一周数据点(作为整个月的代表)拉入单独的时间序列。

我已经尝试了aggregate ts功能,但由于间距不均匀(即4周并不总是一个月等),我遇到了麻烦。

1 个答案:

答案 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"以上。