我有一个在边界处包含NA的向量
x <- c(NA, -1, 1,-1, 1, NA, -1, 2, NA, NA)
我希望结果是:
c(-3, -1, 1,-1, 1, 0, -1, 2, 5, 8)
换句话说,我想用线性插值来填充内部和边界NA(因为NA处于边界,所以我不能称其为“ inter >>-polation”)。
我尝试了软件包“ zoo”中的一个函数,na.fill(x,“ extend”),但是边界输出不是我想要的东西,它只重复最左边或最右边的非NA值:
na.fill(x,"extend")
输出为
[1] -1 -1 1 -1 1 0 -1 2 2 2
我还检查了其他用于填充NA的函数,例如na.approx(),na.locf()等,但是它们都不起作用。
na.spline确实有效,但是边界NA的输出导致极大的变化。
na.spline(x)
输出为:
[1] -15.9475983 -1.0000000 1.0000000 -1.0000000 1.0000000 0.3400655 -1.0000000 2.0000000[9] 13.1441048 35.9323144
边界点太大。谁能帮我吗?预先感谢!
我有一个在边界x处包含NA的向量>
您可以使用na.spline()
库中的zoo
:
na.spline(x)
[1] 0.0 0.5 1.0 1.5 2.0 2.5