【发布时间】:2017-11-17 10:21:56
【问题描述】:
我有多年的月度数据时间序列。现在我想计算每年的不同指数,例如(i) 年度总和和 (ii) 特定月份(7 月和 8 月)的总和。我想在R 和zoo-package 中使用aggregate 函数。
计算年度总和不是问题...
# Test dataset
z_test <- as.zoo(ts(rnorm(200), start=c(1922,1), frequency=12))
# Yearly sum
as.year <- function(x) as.numeric(floor(as.yearmon(x)))
yearsum <- as.ts(aggregate(z_test, as.year, sum))
..但是,使用聚合返回特定月份总和的最佳方法是什么?例如,我想得到每年 7 月和 8 月的总和(类似于 yearsum 的形状)
JulAug_sum <-?
【问题讨论】:
-
Johannes,这个解决方案对你有用吗?
-
请注意,
as.year <- function(x) as.integer(as.yearmon(x))也可以。ts_test被定义为 zoo 对象,但随后在聚合语句中又被强制为 zoo,这是多余的。将其称为z_test可能会更好,以强调它是 zoo 对象而不是 ts 对象。
标签: r time-series aggregate zoo