如何在R中通过线性插值找到点

时间:2016-10-18 23:00:30

标签: r linear-interpolation

我有两点(5,0.45)& (6,0.50)并且需要通过线性插值找到x = 5.019802时的值

但是如何在R中编码?

我的代码如下,但只是得到了一个图表。

x<- c(5,6)
y<- c(0.45,0.50)

interp<- approx(x,y)

plot(x,y,pch=16,cex=2)
points(interp,col='red')

2 个答案:

答案 0 :(得分:11)

您只需指定xout值。

approx(x,y,xout=5.019802)
$x
[1] 5.019802

$y
[1] 0.4509901

答案 1 :(得分:3)

我建议创建一个解决y = mx + b的函数。

x = c(5,6)
y = c(0.45, 0.50)
m <- (y[2] - y[1]) / (x[2] - x[1]) # slope formula
b <- y[1]-(m*x[1]) # solve for b
m*(5.019802) + b

# same answer as the approx function
[1] 0.4509901