我一直在尝试合并两个ts对象,第二个对象恰好在下一个对象之后的一个周期开始。
例如,采用以下两个时间序列
ts1<-ts(c(1:12),star=c(2014,1),freq=12)
ts2<-ts(c(13:24),star=c(2015,1),freq=12)
如您所见,它们两者完全匹配,以便从这两个ts对象中制造出一个ts。我认为合乎逻辑的答案应该是rbind()函数。但这是由它们构成的矩阵,如下所示...
> rbind(ts1,ts2)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
ts1 1 2 3 4 5 6 7 8 9 10 11 12
ts2 13 14 15 16 17 18 19 20 21 22 23 24
我试过其他功能,如merge,cbind都没有成功。使用c()我设法获得了一个唯一的时间序列,主要问题是我失去了原始时间序列的结构属性,这很糟糕,因为我正在尝试将函数预测与新的ts一起使用,但这给了我:
Error: variables ... were specified with different types from the fit
我很高兴能够在时间序列中添加其他观察结果。有点像在2015年1月的ts1中添加值13,但我也没有找到执行该操作的方法。
我认为这很有趣,因为我认为这是向ts对象索取自然而然的事情,但是我没有找到其他任何可以帮助我解决这个问题的问题。好吧,希望这不是一个太愚蠢的问题。
最佳答案
您可以使用xts程序包,该程序包将为您处理详细信息(例如,即使该系列之间有空白)
library(xts)
ts1<-as.xts(ts(c(1:12),star=c(2014,1),freq=12))
ts2<-as.xts(ts(c(13:24),star=c(2015,1),freq=12))
str(ts3 <- c(ts1, ts2))
# An ‘xts’ object on Jan 2014/Dec 2015 containing:
# Data: int [1:24, 1] 1 2 3 4 5 6 7 8 9 10 ...
# Indexed by objects of class: [yearmon] TZ:
# xts Attributes:
# NULL
干杯,彼得
关于r - 是否可以将两个时间序列合而为一?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23944092/