写入 excel 文件的线性模型结果

Linear model results written to excel file

我是 运行 R 中的线性模型,我希望将模型的 整个 输出写入同一个 excel 文件。

现在,我只能对系数执行此操作,这是第一个示例。第二个示例是当我尝试将整个输出写入 excel 时,这会在倒数第二行代码中引发错误,请参见下文:

# creating data set for lm
df<- cbind.data.frame(var1= rnorm(10,3,2), var2= rnorm(10,4,1))

# running sample model
lmodel<- lm(var1~var2, data = df)

# assigning model results to a variable
mod_res<- summary(lmodel)
mod_res

# assigning model coefficients to a variable
modCoeff<- coef(summary(lmodel))
modCoeff

# getting model coefficients to open in an excel spreadsheet... THIS WORKS!
lmodCoeffs<- openxlsx::createWorkbook()
openxlsx::addWorksheet(lmodCoeffs, "coeffs")
openxlsx::writeData(lmodCoeffs, "coeffs", modCoeff, rowNames= TRUE)
openxlsx::openXL(coeffs)

# look at ALL model fit stats in excel... THIS DOES NOT WORK!
modResSheet<- openxlsx::createWorkbook()
openxlsx::addWorksheet(modResSheet, "res")
openxlsx::writeData(modResSheet, "res", mod_Res, rowNames= TRUE) # error thrown here
openxlsx::openXL(modResSheet)

仅获取系数很有用,但是,在一个 excel 文件中查看所有模型拟合统计数据将使模型评估更加全面。

如果你在excel sheet上想要的是运行 print(mod_res)时打印的输出,你可以使用capture.output。所以你问题的倒数第二行应该是

openxlsx::writeData(modResSheet, "res", capture.output(mod_res)) 

为了更整洁的布局,您可以使用 broom

中的 tidyglance
library(broom) #part of tidyverse
openxlsx::writeData(modResSheet, "res", tidy(mod_res)) 
openxlsx::writeData(modResSheet, "res", glance(mod_res),
                    startRow = nrow(tidy(mod_res)) + 4) 

我希望您已经收到了原始问题的答案。为了方便和其他只想导出模型以供进一步检查和模型评估的读者,我只是想添加一个替代方案。包 apaTables 有一个名为 apa.reg.table() 的函数,可以将模型输出 table 以完整的 APA 样式格式导出到 .doc 文件(即使使用 CI 和半偏相关平方)。我发现这是完成您所要求的最方便的方法(假设我了解您使用它的目的)。