我非常(!)R的新手,并尝试找出如何编写我可以在30秒内在Excel中解决的问题。 - 如果问题可能有点微不足道,请原谅我......
我有两个变量,有两个值,比如
x= (3,4);
y= (300, 500)
如果x
会y=400
多少?
答案 0 :(得分:3)
你想要
x= (3,4)
y= (300, 500)
approx(y,x,400)$y
[1] 3.5
只需注释$ y和$ x内置于函数中,因此它们与您的变量无关。如果你需要外推,请使用Hmisc包中的approxExtrap
答案 1 :(得分:2)
您可以编写自己的重新缩放功能,将值从一个范围映射到另一个范围
rescale <- function(x, inrange, outrange) {
(x-min(inrange))/diff(range(inrange)) * diff(range(outrange)) + min(outrange)
}
rescale(400, c(300,500), c(3,4))
# [1] 3.5
这有点矫枉过正,但你可以用lm
做到这一点
x <- c(3,4)
y <-c(300, 500)
predict(lm(x~y), data.frame(y=400))
# 1
# 3.5