在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))
           }