2013-11-04 66 views
2

我有兩個不同時間分辨率的時間序列(傳感器數據)。類別「xts/zoo」(TS1)的時間序列包括小時值和其他時間序列(TS2)具有更好的時間分辨率(每10分鐘一次觀測)。即對於TS1我每天有24個數據點(觀測值),對於TS2我每天有144個數據點。[R + zoo]:不同時間分辨率的時間序列操作

當我計算TS1-TS2一天時,我得到了24個數據點(低時間分辨率)的結果。我想要實現的是獲得144個數據點的結果(如TS2,更好的時間分辨率)。

在R中可以實現這個嗎?

PS:

這是沒有一個很重要的問題,因爲每隔一小時我只是從TS1一個觀察和從TS2 6周的觀察,所以我能想象這個問題是可以解決的,如果一個繪製每之間的擬合線TS1的兩點並計算TS2的線和數據點之間的差值。但我不知道R功能來做到這一點。

回答

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))) 

現在你可以susbtract您的TS,(即使也許你應該檢查他們是否有相同的開始日期)

TS2-TS1.new 
+0

或'na.locf'使用相同的值對於整個的每小時,如果線性插值感覺您的應用程序出錯。 (換個角度來說,'na.spline'嘗試去擬合曲線而不是直線。) –