我试图找出如何制作一个for循环,进行10次回归,然后将其放入10x11矩阵中。
这是我正在使用的代码,由于某种原因它无法正常工作......
for (i in 1:10) {
Pwdlm.list[[i]] =
lm(Pwd[,9+i]~logwprice1+logwprice2+logwprice3+logwprice4+
logwprice5+logwprice6+logwprice7+logwprice8+logwprice9+logwprice10+
Pwd$storeid, data=Pwd)
}
Pwdmat = matrix(Pwdlm.list[[i]]$coefficients, nrow = 10, ncol = 11)
我一直收到这个警告:
警告讯息: 在矩阵(Pwdlm.list [[i]] $ coefficients,nrow = 10,ncol = 11): 数据长度[25]不是行数的子数倍或倍数[10]
但我需要将数据放入10行。
我理解没有看到数据很难但我不确定它是否与[,9 + i]
有关答案 0 :(得分:0)
您似乎没有收到lm
- 来电或Pwdlm.list
的分配错误。试试这个:
Pwdmat = sapply(Pwdlm.list, coefficients)
sapply
函数尝试在所有返回值的长度相等时返回矩阵。每个回归的值都在一列中,看起来就是您希望得到的形式。