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)
也不行。
我哪里错了?
由于您正在处理费率,因此您需要转换y为log(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)