我有以下类型的向量:
x <- c(2,5,1,5,NA,NA,NA,9,23,1,NA,NA,NA,5,2)
是否可以用NA之前和之后的平均值替换我的NA?就像对它们进行插值一样,但是只有onyl一个值!
*更新:在这种情况下,预期输出为c(2,5,1,5,7,7,7,9,23,1,3,3,3,5,2)
非常感谢。
答案 0 :(得分:5)
我们可以使用na.approx
中的zoo
library(zoo)
na.approx(x, method = "constant", f = .5)
# [1] 2 5 1 5 7 7 7 9 23 1 3 3 3 5 2
关于自f
起的自变量?approxfun
for method =“ constant”一个介于0和1之间(含0和1)的数字,指示左和右连续步函数之间的折衷。如果y0和y1是该点左右的值,则如果f == 0,则值为y0;如果f == 1,则值为y1;对于中间值,y0 *(1-f)+ y1 * f。这样,即使对于非有限的y值,结果对于f == 0也是连续的,对于f == 1是连续的。