0

我是 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)
4

1 回答 1

0

这是一个答案,但不能准确回答您的问题。需要一些组装。如果这不能回答您的问题,请重新格式化您的问题:

mylm <- function(x){
    cbind(1, x)
}

mylm(x)
于 2013-02-11T05:41:25.123 回答