繁体   English   中英

R:将较长的动物园时间序列分成日历

[英]R: splitting long zoo time series into calendar

我有一个长达数年的动物园对象。

这是每日报价的时间序列(第一列:日期,第二列:报价)

我希望将这个长期序列划分为日历年子集,最终目标是将这些数据绘制在一张图表中,其水平轴为一年。

(我不想将每日的原始数据转换成每月的数据或任何其他时间步长...)。

谢谢。

这是一种方法

library(quantmod)
getSymbols("SPY", src='yahoo', from='2000-01-01', to='2012-01-01')
SPY <- as.zoo(Ad(SPY))
# Now I have zoo data with a single value for each day (like you say you have)
# Convert it to xts so that I can use xts' split method
mydata <- as.xts(SPY)
# Split data by years.  Give them rownames that are day of year instead of 
# specific dates. cbind data together and plot
ts.plot(do.call(cbind, lapply(split(mydata, 'years'), function(x) {
  zoo(x, 1:NROW(x))
})), col=rainbow(nyears(mydata)))

或者,

tapply(SPY, format(index(SPY), "%Y"), c)

将按年份拆分,不需要转换为xts

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM