我在R中运行了很多回归,并将结果保存在摘要对象中。例如,我已经运行:
reg1<-lm(v1~w1 +w2+w3+w4, data=dataset.to.r)
summary(reg1)
reg2<-lm(v2~w1 +w2+w3+w4, data=dataset.to.r)
summary(reg2)
等50个变量。
现在我想从摘要对象中提取系数和R ^ 2,并使用它们及其显着性水平创建一个表格(如果可能,在Excel中):
w1 w2 w3 w4 R^2
v1
v2
v3
.
.
v50
有没有办法在没有手动复制粘贴所有值的情况下使用一些命令执行此操作?请注意我是R的新手,我不允许下载和安装其他软件包。
答案 0 :(得分:1)
对于多次回归,请使用此选项:
res <- do.call(rbind, lapply(mget(ls(pattern='reg')), function(x) x$coefficients))
write.csv(res[,-1], "regression_test.csv")
答案 1 :(得分:1)
问题是你的对象散布在你的工作区周围,正如nrussell指出的那样。
之类的东西obj = mget(ls(pattern="reg"))
应该给你一个对象列表。现在循环遍历那些
out = matrix(NA, nrow = 50, ncol=5)
counter = 1
for(o in obj){
out[counter, 1:4] = o$coefficients[2:5]
out[counter, 5] = summary(o)$r.squared
counter = counter+1
}
write.csv(out, "yourfilename.csv")
请注意你丢掉了你的适合的截距(这就是为什么我索引2:5),这是你的意图吗?