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