按月汇总时间序列对象R.

时间:2015-08-10 10:26:57

标签: r

我在R中有一个时间序列对象

anom_tsUNAD <-  ts(data, start=c(1922,1), frequency=12)

我想绘制每个月的平均值而不将其转换为数据框。有什么建议吗?

由于

2 个答案:

答案 0 :(得分:3)

我们可以使用mean然后tapply

获取每个'月'的plot
 meanVal <- tapply(anom_tsUNAD, cycle(anom_tsUNAD), FUN=mean)
 plot(meanVal)

cycle给出每个观察的循环中的数字位置。对于'Jan',它为1,'Dec'为12.我们将其用作tapply中的分组变量来计算mean

数据

 anom_tsUNAD <- ts(1:40, start=c(1922,1), frequency=12)

答案 1 :(得分:2)

如果您不介意加载其他包,我建议您使用 zoo 中的聚合函数或 xts 中的类似函数。无论如何,您可能还需要这些软件包,特别是如果您遇到不规则的时间序列数据。以下是使用 zoo 跟随 xts 汇总到每月时间序列的示例:

<强>动物园:     monthlyTS&lt; - aggregate(dailyTS,as.yearmon,sum)

<强> XTS:     monthlyTS&lt; - apply.monthly(xts(dailyTS),mean)

纯粹的语法糖! xts 的真正优点是你可以按周聚合。但是,将新的聚合函数添加到 zoo 函数中也是微不足道的。

干杯,

亚当