是否可以合并两个时间序列?

时间:2014-05-29 22:30:02

标签: r merge

我一直在尝试合并两个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月将值13添加到ts1,但我还没找到如何做到这一点。

我认为这很有趣,因为我认为这是一个非常自然的东西要求一个ts对象,但我还没有找到任何其他问题来帮助我。好吧,希望这不是一个太愚蠢的问题。

4 个答案:

答案 0 :(得分:6)

我认为你正在寻找像

这样的东西
comb <- ts.union(ts1, ts2)
pmin(comb[,1], comb[,2], na.rm = TRUE)
#     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
#2014   1   2   3   4   5   6   7   8   9  10  11  12
#2015  13  14  15  16  17  18  19  20  21  22  23  24

答案 1 :(得分:6)

您需要重新分配第一个系列中的属性。

> ts(c(ts1,ts2), start=start(ts1), frequency=frequency(ts1))
     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2014   1   2   3   4   5   6   7   8   9  10  11  12
2015  13  14  15  16  17  18  19  20  21  22  23  24

答案 2 :(得分:3)

这对我有用

ts.union(ts1, ts2)
             ts1 ts2
    Jan 2014   1  NA
    Feb 2014   2  NA
    Mar 2014   3  NA
    Apr 2014   4  NA
    May 2014   5  NA
    Jun 2014   6  NA
    Jul 2014   7  NA
    Aug 2014   8  NA
    Sep 2014   9  NA
    Oct 2014  10  NA
    Nov 2014  11  NA
    Dec 2014  12  NA
    Jan 2015  NA  13
    Feb 2015  NA  14
    Mar 2015  NA  15
    Apr 2015  NA  16
    May 2015  NA  17
    Jun 2015  NA  18
    Jul 2015  NA  19
    Aug 2015  NA  20
    Sep 2015  NA  21
    Oct 2015  NA  22
    Nov 2015  NA  23
    Dec 2015  NA  24

答案 3 :(得分:2)

您可以使用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

干杯,彼得