【问题标题】:How to turn model into function in R如何在 R 中将模型转换为函数
【发布时间】:2015-02-11 05:56:54
【问题描述】:

假设,我有一个带有lm 的线性模型。只是一个微不足道的:

x = 1:10
y = 1:10
lm1 = lm(y ~ x)

现在我想把它变成一个函数,在这个特定的例子中,它的行为就像function(x) {x}。我怎么做?

嗯,一种方法是使用预测:

f = function(x) { predict(lm1, newdata = data.frame( x ) ) }

但这看起来不必要的麻烦。有没有更好的办法?

【问题讨论】:

  • 您的意思是f = function(x) { predict(lm1, newdata = data.frame(x) ) } 吗?不确定seq(x, x) 的用途。
  • 是的,完全正确。没有理由使用 seq。
  • 但是为什么你认为这很麻烦?编写完成后,您就可以开始运行了。您甚至可以将其扩展为 anyf<-function(x,model) predict(model,newdata=data.frame(x)) tho' 我认为您需要包含一个参数来强制 xname 与指定模型的输入变量名称匹配。

标签: r function regression


【解决方案1】:

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

【讨论】:

  • 我猜这只是一个例子,他想要的是创建一个近似于一组数据的模型,并将其作为函数应用于其他数据(新 x)并输出一个新的是的。
猜你喜欢
  • 2020-11-14
  • 1970-01-01
  • 2011-03-25
  • 2016-03-05
  • 2019-08-18
  • 2020-07-02
  • 1970-01-01
  • 2012-07-04
  • 2015-08-23
相关资源
最近更新 更多