小编Hon*_* Li的帖子

在r的向量边界处填充NA

我有一个在边界处包含NA的向量

x <- c(NA, -1, 1,-1, 1, NA, -1, 2, NA, NA)
Run Code Online (Sandbox Code Playgroud)

我希望结果是:

c(-3, -1, 1,-1, 1, 0, -1, 2, 5, 8)
Run Code Online (Sandbox Code Playgroud)

换句话说,我想用线性插值来填充内部和边界NA(也许我不能称其为“ inter- polation”,因为NA处于边界)。

我在“ zoo”包na.fill(x,“ extend”)中尝试了一个函数,但是边界输出不是我想要的东西,它只重复最左边或最右边的非NA值:

na.fill(x,"extend")
Run Code Online (Sandbox Code Playgroud)

输出是

[1] -1 -1  1 -1  1  0 -1  2  2  2
Run Code Online (Sandbox Code Playgroud)

我还检查了用于填充NA的其他函数,例如na.approx(),na.locf()等,但是它们都不起作用。

na.spline确实可以工作,但是边界NA的输出导致极大的变化。

na.spline(x)
Run Code Online (Sandbox Code Playgroud)

输出为:

 [1] -15.9475983  -1.0000000   1.0000000  -1.0000000   1.0000000   0.3400655  -1.0000000   2.0000000
 [9]  13.1441048  35.9323144
Run Code Online (Sandbox Code Playgroud)

边界点太大。谁能帮我吗?提前致谢!

r linear-interpolation zoo na

4
推荐指数
1
解决办法
100
查看次数

标签 统计

linear-interpolation ×1

na ×1

r ×1

zoo ×1