R 从摘要对象中提取元素

R 从摘要对象中提取元素,r,R,我在R中运行了许多回归,并将结果保存在summary对象中。例如,我运行了: 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) 有没有一种方法可以在不需要手动复制粘贴所有值的情况下,通过几个命令来执行此操作?请注意,我是R方面的新手,不允许下载和安装其他软件包。对于多元回归,请使用以下方法: r

我在R中运行了许多回归,并将结果保存在summary对象中。例如,我运行了:

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)

有没有一种方法可以在不需要手动复制粘贴所有值的情况下,通过几个命令来执行此操作?请注意,我是R方面的新手,不允许下载和安装其他软件包。

对于多元回归,请使用以下方法:

res <- do.call(rbind, lapply(mget(ls(pattern='reg')), function(x) x$coefficients))
write.csv(res[,-1], "regression_test.csv")

res正如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),这是您的意图吗

您的模型
reg1、reg2、…
是存储在列表中,还是分散在您的工作区中?您可以将系数等提取为
reg1$coverties
。循环你的回归并将其收集到矩阵或数据框中。使用excel可以读取的格式
write.csv
另存为csv。@nrussell,谢谢您的回复。我对R很陌生,所以我不太清楚你的意思。我的代码就是我在问题中写的,一系列的regX,summary(regX)对。所以我猜他们分散在工作场所。@mts,谢谢你的回复。你能为你的提议提供一些代码吗?这似乎可以解决问题,提前谢谢。您想要每个
reg
的t-stats吗?非常感谢您的回复。我已经试过了,但它并不完全是我所需要的(或者我没有正确地实现它,这是可能的:))当我在两个回归上尝试它时,第二个回归结果写在第一个结果之上。所以我只有第二个回归结果。另外,我将w变量作为行,而我希望它们作为列(因为我有50个不同的v依赖变量)。我试过了,现在有了正确的格式,谢谢。有没有办法包括与显著性水平对应的星星?很可能需要单独计算。非常感谢您的回复。是的,拦截不包括在内。让我再次感谢你。我尝试了两次回归(作为一个例子),但是第一次回归我得到了NA,而回归有规则的系数。它还反转了回归的顺序,即第二个回归出现在第一个位置,第二个回归出现在第一个位置。我对对象的顺序没有影响,但您可能只需要在导出之前反转
out
的行顺序,请尝试一下。关于NAs,我需要在这里查看您的数据,但您也可以尝试使用
summary(o)$coverties[…]
。第二次回归可以吗?有没有办法在显著性水平上加上星星,而不仅仅是系数?
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")