缺失值的插值

时间:2015-06-18 04:18:50

标签: r vectorization interpolation

现在我正在做这个项目,它使用现有数据线性插入缺失y值的值。这是基本思想:向量y是数据集中的y值:

y <- c(1, NA, NA, 2, 3, 4, NA, 5)

x值是

x <- 1:8

我想要的是使用最接近NA点的两个非零数据点和相应的x值线性插值y中NA的值,即对于点2,y值将被插值使用点1和4中的x和y值,即(1,1)和(4,2)。唯一的限制是不允许循环。有人帮忙吗?

1 个答案:

答案 0 :(得分:3)

似乎是approxfun的良好候选者,它进行线性插值。只需使用非NA值

拟合插值
y <- c(1, NA, NA, 2, 3, 4, NA, 5)
x <- 1:8

f<-approxfun(x[!is.na(y)], y[!is.na(y)])
f(x)
# [1] 1.000000 1.333333 1.666667 2.000000 3.000000 4.000000 4.500000 5.000000