使用R将两个时间序列合并到一个新的数据帧中

使用R将两个时间序列合并到一个新的数据帧中,r,time-series,R,Time Series,嗨,我有一个小的不连续时间序列数据(mWL): 我还有一个相当大的连续(每20分钟一次)数据库(H),其中也包含一些“mWL”的时间度量 tail(H,n=80) time e1 13782 2013-05-25 09:40:00 12.8452 13783 2013-05-25 10:00:00 12.8429 13784 2013-05-25 10:20:00 12.8376 13785 2013-05-25 10:40:00 12.836

嗨,我有一个小的不连续时间序列数据(mWL):

我还有一个相当大的连续(每20分钟一次)数据库(H),其中也包含一些“mWL”的时间度量

tail(H,n=80)
                     time      e1
13782 2013-05-25 09:40:00 12.8452
13783 2013-05-25 10:00:00 12.8429
13784 2013-05-25 10:20:00 12.8376
13785 2013-05-25 10:40:00 12.8362
13786 2013-05-25 11:00:00 12.8338
13787 2013-05-25 11:20:00 12.8359
13788 2013-05-25 11:40:00 12.8371
13789 2013-05-25 12:00:00 12.8380
13790 2013-05-25 12:20:00 12.8355
13791 2013-05-25 12:40:00 12.8380
13792 2013-05-25 13:00:00 12.8396
13793 2013-05-25 13:20:00 12.8418
13794 2013-05-25 13:40:00 12.8403
13795 2013-05-25 14:00:00 12.8427
13796 2013-05-25 14:20:00 12.8443
13797 2013-05-25 14:40:00 12.8453
13798 2013-05-25 15:00:00 12.8460
13799 2013-05-25 15:20:00 12.8483
13800 2013-05-25 15:40:00 12.8508
13801 2013-05-25 16:00:00 12.8528
13802 2013-05-25 16:20:00 12.8547
13803 2013-05-25 16:40:00 12.8559
13804 2013-05-25 17:00:00 12.8579
13805 2013-05-25 17:20:00 12.8594
13806 2013-05-25 17:40:00 12.8613
我想制作一个大小为“mWL”(即仅6行)的新数据帧,同时合并H$e1数据;但是当我尝试使用align.time时,数据帧仍然很大,“mWL”数据会重复

require(xts)
Hsort<-align.time(xts(H[,2],as.POSIXct(H[,1])), n=1200)
mWLsort<-align.time(xts(mWL[,2],as.POSIXct(mWL[,1])), n=1200)
merge(H, mWLsort)
require(xts)

Hsort对于
merge.zoo
merge.xts
(如果存在)可能继承或遵循zoo作者的指导的
all
的默认值为TRUE。因此,如果您只想匹配第二个对象中的项目,请设置
all=c(FALSE,TRUE)
。(这与
base::merge
中的
all
的默认设置相反,因此如果您感到困惑,我当然可以理解。直到我看到:

 help(package="zoo", merge.zoo)
 help(package="xts", merge.xts)

我尝试了“zoo”,但当我尝试使用“H”数据时,如:HsortI不建议使用
zoo
。只需使用
merge.xts
all=c(FALSE,TRUE)
。我试图帮助您了解xts软件包的传统。我了解如何使用all=F或join='inner'限制合并对象,但它只基于小时/分钟进行合并,不考虑日期,这可能就是我得到非常大的合并对象的原因!!您应该将索引设置为日期,而不是当前的任何日期xts对象仅在索引上合并(如参考帮助页中所述)
 help(package="zoo", merge.zoo)
 help(package="xts", merge.xts)