将列添加到矩阵中作为R中函数的一部分

时间:2013-02-11 05:24:24

标签: r function matrix

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

1 个答案:

答案 0 :(得分:0)

这是一个答案,但没有完全回答你的问题。需要一些装配。如果这不能回答您的问题,请重新格式化您的问题:

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

mylm(x)