让我们说,我已经拥有了lm
的线性模型。只是一个微不足道的:
x = 1:10
y = 1:10
lm1 = lm(y ~ x)
现在我想把它变成一个函数,在这个特定的例子中,它的行为就像function(x) {x}
一样。我怎么做?
嗯,一种方法是使用预测:
f = function(x) { predict(lm1, newdata = data.frame( x ) ) }
但这看起来不必要地繁琐。还有更好的方法吗?
答案 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))
}