我在zoo
包中使用na.spline()
函数时遇到了问题。尽管文档明确说明这是一种插值函数,但我得到的结果却包括外推。
以下代码重现了这个问题:
require(zoo)
vector <- c(NA,NA,NA,NA,NA,NA,5,NA,7,8,NA,NA)
na.spline(vector)
这个应该输出的结果是:
NA NA NA NA NA NA 5 6 7 8 NA NA
这将是内部NA的插值,保留尾随的NA。但是实际上,我得到了以下结果:
-1 0 1 2 3 4 5 6 7 8 9 10
根据文档,这不应该发生。有没有什么方法可以避免外推?
我认识到在我的例子中,我可以使用线性插值,但这是一个最小工作示例。虽然我不一定要使用na.spline()函数,但我需要一种使用三次样条插值的方法。
stats::spline
上:spline(seq_along(vector), vector, xout=seq_along(vector))
。它与approx
不一致,后者严格执行插值。 - Matthew Plourde