在R中如何将模型转化为函数
比方说,我已经得到了一个线性模型,带有在R中如何将模型转化为函数,r,function,regression,R,Function,Regression,比方说,我已经得到了一个线性模型,带有lm。只是一个小问题: x = 1:10 y = 1:10 lm1 = lm(y ~ x) 现在我想把它转换成一个函数,在这个特定的例子中,它的行为就像function(x){x}。我该怎么做 一种方法是使用预测: f = function(x) { predict(lm1, newdata = data.frame( x ) ) } 但这看起来不必要的麻烦。有更好的方法吗?我不明白您为什么要这样做,因为您只需要编写一个函数来返回R环境中已经存在的内容,
lm
。只是一个小问题:
x = 1:10
y = 1:10
lm1 = lm(y ~ x)
现在我想把它转换成一个函数,在这个特定的例子中,它的行为就像function(x){x}
。我该怎么做
一种方法是使用预测:
f = function(x) { predict(lm1, newdata = data.frame( x ) ) }
但这看起来不必要的麻烦。有更好的方法吗?我不明白您为什么要这样做,因为您只需要编写一个函数来返回R环境中已经存在的内容,但您可以轻松地执行以下操作:
x = 1:10
y = 1:10
lm1 = lm(y ~ x)
foo <- function(x){
return(x)
}
foo(lm)
> foo(lm)
Call:
lm(formula = y ~ x)
Coefficients:
(Intercept) x
0 1
你是说
f=function(x){predict(lm1,newdata=data.frame(x))}
?不确定序列(x,x)是什么意思。是的,没错。没有理由使用seq。但为什么您认为这很麻烦?一旦写完,你就可以开始跑步了。你甚至可以把它扩展到anyfI,我猜这只是一个例子,他想要的是创建一个近似一组数据的模型,并将其作为函数应用于其他数据(新的x)并输出一个新的y。
foo <- function(x, y){
return (lm(y~x))
}