在r的向量边界处填充NA

问题描述 投票:1回答:1

我有一个在边界处包含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的向量>

r na zoo linear-interpolation
1个回答
4
投票

您可以使用na.spline()库中的zoo

na.spline(x)

[1] 0.0 0.5 1.0 1.5 2.0 2.5
© www.soinside.com 2019 - 2024. All rights reserved.