【发布时间】:2016-02-26 18:51:19
【问题描述】:
我试图弄清楚如何制作一个执行 10 次回归然后将其放入 10x11 矩阵的 for 循环。
这是我正在使用的代码,但由于某种原因它无法正常工作......
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)
我不断收到此警告:
警告信息: 在 matrix(Pwdlm.list[[i]]$coefficients, nrow = 10, ncol = 11) 中: 数据长度[25]不是行数[10]的约数或倍数
但我需要将数据放入 10 行。
我知道不看数据很难,但我不确定它是否与 [,9+i] 有关
【问题讨论】:
-
这并没有明确回答您的问题,但我认为它可能有用且效率更高:*.com/a/35638859/2378649 要使其在您的设置中工作(即
dplyr部分),您可能需要melt你的数据框并创建一个分组变量。 -
寻求帮助时,请在示例输入数据中包含一个最小的reproducible example,以便我们可以复制/粘贴代码以获得相同的错误。这使帮助您变得更加容易。似乎您获得了超过 10 个系数。您是否在没有循环的情况下运行它以验证它是否按预期工作?你所有的列都是数字的吗?
-
谢谢。对不起是我的第一篇文章。一旦我可以尝试这些方法,我会尽快回复你们。我喜欢 sapply 的想法,并会尝试。我确实有一个分组变量。但是是的,我得到 25 行而不是 10 行。
标签: r matrix statistics