我有一个不规则的时间序列,我正在工作,我想转换成一个常规的,而不是通常的"数据丢失"行为在其他问题中回答,我需要在每个有规律间隔的观察是最近的观察,不管多久以前。我已经写了一个函数来做这件事,但是有两个循环,它非常慢。
作为一个例子,而不是
> 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