2

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

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

是否有可能在 R 中实现这一点?

PS:

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

4

1 回答 1

3

na.approx 您可以使用线性/常数近似或 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)))

现在您可以减去您的 ts,(即使您应该检查它们是否具有相同的开始日期)

TS2-TS1.new 
于 2013-11-04T09:34:06.823 回答