[R + zoo]:具有不同时间分辨率的时间序列的操作

时间:2013-11-04 09:26:32

标签: r time-series xts zoo

我有两个时间序列(传感器数据),具有不同的时间分辨率。来自“xts / zoo”类( TS1 )的时间序列包括每小时值,而其他时间序列( TS2 )具有更好的时间分辨率(每10分钟一次观察) )。即对于TS1,我每天有24个数据点(观察),对于TS2,我每天有144个数据点。

当我计算TS1-TS2一天时,我得到一个包含24个数据点(低时间分辨率)的结果。我想要实现的是获得144个数据点的结果(作为TS2,更好的时间分辨率)。

是否有可能在R?

中实现这一目标

P.S:

这不是一个小问题,因为在一小时的时间间隔内,我只有TS1的一个观测值和TS2的6个观测值,所以我可以想象如果在TS1的每两个点之间画一条拟合线并计算出这个问题就可以解决这个问题。线与TS2的数据点之间的差异。但我知道没有R功能可以做到这一点。

1 个答案:

答案 0 :(得分:3)

对于线性/常数近似,您可以使用na.approx来近似缺失值,对于多项式1,可以使用na.spline来近似缺失值。

## new index to be used 
new.index <- 
  seq(min(index(TS1)),max(index(TS1)), by=as.difftime(10,units='mins'))
## linear approx
TS1.new  <- na.approx(merge(TS1 ,xts(NULL,new.index)))

现在你可以提出你的问题,(即使你应该检查他们的开始日期是否相同)

TS2-TS1.new