我在边界处有一个包含 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 位于边界处)。
我尝试了包“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
边界点太大。谁能帮我吗?提前致谢!
最佳答案
您可以使用 na.spline()
来自 zoo
图书馆:
na.spline(x)
[1] 0.0 0.5 1.0 1.5 2.0 2.5
原始问题的数据:
x <- c(0, NA, 1, NA, 2, NA)
关于r - 在 r 中的向量边界处填充 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58790581/