我是R的新手,我正在尝试第一次创建功能。我正在尝试创建一个函数,它将给出回归系数,R平方和调整后的R平方值,其中x是值的矩阵,y是向量。我没有问题制作基本方程式,但是我需要一种方法来使函数在x矩阵中添加一列1,这样用户就不必将它放入。换句话说,如果我的话,我的函数效果很好在矩阵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)
答案 0 :(得分:0)
这是一个答案,但没有完全回答你的问题。需要一些装配。如果这不能回答您的问题,请重新格式化您的问题:
mylm <- function(x){
cbind(1, x)
}
mylm(x)