r语言 - 日历年度报表计算



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

例如:

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

我希望它是这样的,每个日历年的变化,即它应该从1947年1月1日到1948年1月1日计算,等等。然后,对于2012年,因为只有10月份的数据可用,所以应该省略它。

据我所见,PerformanceAnalytics和相关包中的功能都不能正确地做到这一点。

您似乎想要按年计算回报。我不知道有一个函数可以自动做到这一点,但是在TTR包中的ROC函数很容易做到。

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))

最新更新