如何在R中将模型转换为函数

时间:2014-12-12 13:48:52

标签: 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 ) ) }

但这看起来不必要地繁琐。还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我很困惑你为什么要这样做,因为你只是在编写一个函数来返回已经在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 

您可以构建foo(),以便lm()中包含对foo()的实际调用:

    foo <- function(x, y){
             return (lm(y~x))
           }