汇总时间序列,从数周到月

Kal*_*lle 0 aggregate r time-series

假设频率(ts)= 52的时间序列ts:

Time Series:
Start = c(2010, 34) 
End = c(2013, 25) 
Frequency = 52 
...
Run Code Online (Sandbox Code Playgroud)

我想聚合ts,使得频率(ts)= 12.

如果新频率除以旧频率,则可以使用

aggregate(ts, nfrequency = k, FUN = sum)
Run Code Online (Sandbox Code Playgroud)

但如果旧频率mod新频率> 0则不起作用:

> ts <- aggregate(ts, nfrequency = 12, FUN = sum)
Error in aggregate.ts(ts, nfrequency = 12, FUN = sum) : 
cannot change frequency from 52 to 12
Run Code Online (Sandbox Code Playgroud)

我可以设想循环遍历时间序列并决定每个值是完全添加还是一小部分,但我肯定不是第一个有这个要求的.那么有任何预定义的功能吗?

ags*_*udy 8

是的,预定义的函数通常在任何时间段内按月进行聚合.您可以使用xts包对于时间序列操作非常方便.

例如,您可以使用apply.monthly:

library(xts)
ts.month <- apply.monthly(as.xts(ts),FUN=sum)
Run Code Online (Sandbox Code Playgroud)