我试图从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))