在 R 中执行常量插值

Ran*_*ser 4 interpolation r linear-interpolation

我有一组数据,例如:

x<-c(1, 2, 3, 4, 5, 6)
y<-c(100, 110, 121, 133.1, NA, 161.051)
Run Code Online (Sandbox Code Playgroud)

现在,y显然以 10% 的恒定速度增长。

我希望能够在 处插入数据x=5,并且我想打印146.41作为答案。但是,这个函数似乎并没有这样做:

approx(x,y,5)
Run Code Online (Sandbox Code Playgroud)

这会打印147.0755,这不是我正在寻找的答案。

approx(x,y,5,method="constant")
Run Code Online (Sandbox Code Playgroud)

也不行。

我哪里错了?

flo*_*del 5

由于您正在处理费率,因此您需要转换ylog(y)、插值,然后使用exp将结果恢复为线性比例:

exp(approx(x, log(y), x)$y)
# [1] 100.000 110.000 121.000 133.100 146.410 161.051
Run Code Online (Sandbox Code Playgroud)