如何将R中compar.gee模型结果导出为规范Excel表格?
导出广义估计方程(GEE)结果为规范Excel表格
问题描述
我有多个以变量形式保存的广义估计方程模型(如function1),直接运行变量名会输出包含Call、观测数、QIC、残差摘要、系数表(含Estimate、S.E.、t、Pr(T > |t|))等内容的结果。使用以下代码导出时:
function1ResultsTable <- capture.output(function1) write.csv(function1ResultsTable, "Documents/function1ResultsTable.csv")
Excel中系数与对应统计量会被挤在同一单元格,无法生成系数、Estimate、S.E.、t值、Pr(T > |t|)各占一列的规范表格,只能手动整理。
解决方案
方法一:直接提取模型内置的系数矩阵
这类GEE模型的系数数据通常存储在$coefficients组件中,可直接提取并整理为数据框:
# 提取完整系数表(包含所有4列) coef_df <- as.data.frame(function1$coefficients) # 添加变量名列作为第一列 coef_df <- cbind(Variable = rownames(coef_df), coef_df) # 重置行名,避免导出时出现额外行号 rownames(coef_df) <- NULL
然后用writexl包导出为Excel文件(该包无需Java依赖,使用简便):
# 首次使用需安装包 install.packages("writexl") library(writexl) # 导出系数表 write_xlsx(coef_df, "Documents/function1_coefficients.xlsx")
方法二:用broom包生成整洁模型结果(通用型方法)
broom包可以将各类统计模型结果转换为标准整洁数据框,适配多数模型类型:
# 首次使用需安装包 install.packages("broom") library(broom) # 整理模型结果为整洁数据框 tidy_result <- tidy(function1) # 导出到Excel write_xlsx(tidy_result, "Documents/function1_tidy_results.xlsx")
注:如果tidy()对compar.gee模型支持不佳,优先使用方法一。
额外:导出模型元信息(观测数、QIC等)
若需要将模型的元信息(如观测数、QIC值)也导出到同一Excel文件的不同工作表:
# 整理模型元数据 meta_df <- data.frame( 指标 = c("观测数", "QIC值", "估计尺度参数", "系统发育自由度(dfP)"), 数值 = c(function1$n, function1$qic, function1$scale, function1$dfP) ) # 导出多个工作表到同一文件 write_xlsx( list(系数表 = coef_df, 模型元信息 = meta_df), "Documents/function1_full_results.xlsx" )
内容的提问来源于stack exchange,提问作者PowellHall
相关产品推荐
相关产品推荐

