我是 R 的新手,我第一次尝试创建函数。我正在尝试创建一个函数,它将为我提供回归系数、R 平方和调整后的 R 平方值,其中 x 是值矩阵,y 是向量。我制作基本方程没有问题,但我需要一种方法让函数向 x 矩阵添加一列一,这样用户就不必把它放进去。换句话说,如果我的函数很好用在矩阵 c(1) 中创建我的第一列,但我希望由函数完成。我知道对此必须有一个非常简单的答案,但我已经尝试了我能想到的一切并查看了许多不同的问题,但我无法弄清楚(因为我对此很陌生,我找到了很多信息关于 R 在线对我来说真的很难理解)。无论如何,任何帮助是极大的赞赏。我将尽我所能回答任何澄清问题。我一直在使用以下示例数据集/R 函数对其进行测试:
x<-cbind(c(4,6,8,10),c(5,3,6,7))
y<-c(2,6,9,4)
fit.lm<-lm(y~x)
summary(fit.lm)
如果我可以添加那一列,我的函数将返回与上述函数相同的值......到目前为止我的代码:
mylm<-function(y,x)
{
betahat<-solve(t(x)%*%x)%*%t(x)%*%y
yhat<-predict(lm(y~x))
Rsquare<-1-((sum((yhat-y)^2))/sum((y-mean(y))^2))
AdjRsquare<-1-((sum((yhat-y)^2))/sum((y-mean(y))^2))%*%((length(y)-1)/(length(y)-length(betahat)))
results<-list(B=betahat,R2=Rsquare,R2A=AdjRsquare)
return(results)
}
mylm(y,x)