如何从R的大型dataframe导出频数表与描述性分析结果至Excel?
R中导出数据框描述性统计到Excel的简便方法
针对你提供的包含分类变量(x、y、m)和连续变量(z)的数据框,这里有两种简便的方法可以快速生成描述性统计并导出到Excel:
方法一:用summarytools生成详细统计结果
summarytools包的dfSummary函数会自动识别变量类型,输出包含频数、占比、均值、分位数、缺失值等全面信息的统计表格,适合分析阶段使用。
# 首次使用先安装包 install.packages(c("summarytools", "openxlsx")) # 加载所需包 library(summarytools) library(openxlsx) # 生成描述性统计表格 desc_table <- dfSummary(df, style = "grid", plain.ascii = FALSE) # 转换为数据框格式以便导出 desc_df <- as.data.frame(desc_table) # 导出到Excel文件 write.xlsx(desc_df, file = "详细描述性统计结果.xlsx", rowNames = FALSE)
方法二:用gtsummary生成展示型统计结果
gtsummary包的tbl_summary支持自定义统计量格式,输出的表格更简洁美观,适合直接用于成果展示。
# 首次使用先安装包 install.packages(c("gtsummary", "openxlsx")) # 加载所需包 library(gtsummary) library(openxlsx) # 生成自定义格式的统计表格 stats_tbl <- tbl_summary(df, # 指定变量类型 type = list(all_continuous() ~ "continuous", all_categorical() ~ "categorical"), # 自定义统计量:连续变量用均值±标准差(最小值-最大值),分类变量用频数(占比) statistic = list(all_continuous() ~ "{mean} ± {sd} ({min} - {max})", all_categorical() ~ "{n} ({p}%)")) # 转换为数据框格式 stats_df <- as.data.frame(stats_tbl$table_body) # 导出到Excel文件 write.xlsx(stats_df, file = "展示型描述性统计结果.xlsx", rowNames = FALSE)
小提示
- 如果需要在Excel中保留表格格式(比如加粗、对齐),可以用summarytools的
export函数直接导出:export(desc_table, file = "带格式统计结果.xlsx") - gtsummary生成的表格也可以用
as_workbook函数直接转为Excel工作簿,保留更多格式:wb <- as_workbook(stats_tbl); saveWorkbook(wb, "展示型统计结果_带格式.xlsx")
内容的提问来源于stack exchange,提问作者An116
相关产品推荐
相关产品推荐

