我们可以使用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
Run Code Online (Sandbox Code Playgroud)
关于这个论点f,来自?approxfun
for method ="constant"0到1之间的数字,表示左连续和右连续步进函数之间的折衷.如果y0和y1是该点左侧和右侧的值,则如果f == 0,则值为y0;如果f == 1,则值为y1;对于中间值,y0*(1-f)+ y1*f.这样,对于f == 0,结果是右连续的,对于f == 1,结果是左连续的,即使对于非有限y值也是如此