在 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    

您可以使用zoo包中的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

最新更新