0

我正在尝试计算GDPC96FRED 时间序列的日历年 GDP 增长(即 xts 对象)。我正在寻找一个没有循环的简单函数,它计算日历年增长,其中变量是数据对象(此处GDPC96)、频率(此处为季度)以及是否应显示已弃用的时期(例如 2013 年)。

例如:

library(quantmod)
getSymbols("GDPC96",src="FRED")
a <- annualReturn(GDPC96,leading=FALSE)
tail(a)

我希望它是每个日历年的变化,即它应该从 01.01.1947 计算到 01.01.1948 等等。然后,对于 2012 年,数据仅在 10 月可用,应省略。

据我所知,PerformanceAnalytics 和相关软件包中的任何功能都不能正确执行此操作。

4

1 回答 1

2

似乎您想要类似年度回报计算的东西。我不知道自动执行此操作的函数,但ROC使用 TTR 包中的函数很容易。

library(quantmod)
getSymbols("GDPC96",src="FRED")
ROC(GDPC96, 4)  # 4-period returns for quarterly data
getSymbols("SPY")
spy <- to.monthly(SPY)
ROC(spy, 12)  # 12-period returns for monthly data

根据评论更新:

first.obs.by.year <- lapply(split(GDPC96, "years"),first)
last.obs.by.year <- lapply(split(GDPC96, "years"),last)
ROC(do.call(rbind, first.obs.by.year))
ROC(do.call(rbind, last.obs.by.year))
于 2013-04-04T22:34:25.807 回答