2011-09-14 41 views
2

我有一個不規則的時間序列,我正在處理,我想轉換爲一個常規的時間序列,而不是通常在其他問題中回答的「數據缺失」行爲,我需要在每個定期間隔的間隔是最近的觀察,不管多久以前。我已經寫了一個函數來做到這一點,但是有兩個循環,它的速度非常慢。在R中,如何將不規則時間序列轉換爲沒有NA的常規時間序列?

作爲一個例子,而不必

> x <- zoo(c(1, 3, 6), c(1981, 1984, 1985)) 
> as.ts(x) 
Time Series: 
Start = 1981 
End = 1985 
Frequency = 1 
[1] 1 NA NA 3 6 

我想這樣的結果:

> as.ts(x) 
Time Series: 
Start = 1981 
End = 1985 
Frequency = 1 
[1] 1 1 1 3 6  

回答

4

您可以使用na.locf從動物園包。

y <- as.ts(x) 
y <- na.locf(y) 
y 
# Time Series: 
# Start = 1981 
# End = 1985 
# Frequency = 1 
# [1] 1 1 1 3 6 
+0

完美,謝謝。 – Dennis

相關問題