2011-09-14 39 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

相关问题