R 如何用线性插值法求点

R 如何用线性插值法求点,r,linear-interpolation,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') x我建议做一个函数来解y=mx+b x = c(5,6) y = c(0.45, 0.50) m <- (y[2] -

我有两个点(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')

x我建议做一个函数来解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
x=c(5,6)
y=c(0.45,0.50)

m您只需要指定一个
xout

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

$y
[1] 0.4509901

精确值5.019802不显示在
interp$x
中。您可以尝试使用,
targetVal=5.019802,找到距离目标值最近的点;哪个.min(abs(interp$x-targetVal))
将索引设为2,
interp$x[2],interp$y[2]
将是最接近所需值的点