You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将R中拼接生成的大尺寸统计表格导出为PDF文件

R统计频率表导出PDF的三种可行方法

你生成的tab1为矩阵结构,先转为数据框可适配各类导出工具,以下是可直接运行的实现方案:

方法1:修正gridExtra包的使用

你之前使用gridExtra导出失败,大概率是未将矩阵转为适配的表格结构、或者未正确开闭PDF设备导致,正确实现代码如下:

library(gridExtra)
# 处理表格结构
tab1_df <- as.data.frame(tab1)
tab1_df$municipionombre <- rownames(tab1_df)
rownames(tab1_df) <- NULL
# 调整列顺序更符合阅读逻辑
tab1_df <- tab1_df[,c("municipionombre","FA","FAA","FR","FRP","perc")]

# 导出PDF,可调整width、height参数适配表格长度
pdf("频率统计结果.pdf", width = 10, height = 8)
grid.table(tab1_df)
dev.off()

方法2:gt包导出(样式更美观)

gt是R生态中专门用于格式化表格的工具,导出PDF稳定性更高、样式自定义空间更大:

library(gt)
library(dplyr)
# 同前处理表格结构
tab1_df <- as.data.frame(tab1)
tab1_df$municipionombre <- rownames(tab1_df)
rownames(tab1_df) <- NULL
tab1_df <- tab1_df[,c("municipionombre","FA","FAA","FR","FRP","perc")]

# 格式化后导出
tab1_df %>% 
  gt() %>% 
  fmt_percent(columns = c(FR, FRP), decimals = 2) %>% # 给频率列自动添加百分比格式
  fmt_number(columns = perc, decimals = 2) %>% 
  cols_label(
    municipionombre = "城市名称",
    FA = "绝对频数",
    FAA = "累计绝对频数",
    FR = "相对频率",
    FRP = "累计相对频率",
    perc = "占比(%)"
  ) %>% 
  gtsave("频率统计结果_美化版.pdf")

方法3:R Markdown渲染导出

如果需要把表格、分析代码、说明文字整合到同一份PDF文档中,可通过R Markdown实现:

  1. 新建R Markdown文件,输出格式选择PDF
  2. 在代码块中放入统计和导出逻辑:
```{r, echo=FALSE, results='asis'}
library(knitr)
# 你的原有统计代码
FA=table(ant$municipionombre)
FR=FA/margin.table(FA)
FAA=cumsum(FA)
FRP=cumsum(FA)/margin.table(FA)
perc=FR*100
tab1=cbind(FA,FAA,FR,FRP,perc)
# 处理表格结构
tab1_df <- as.data.frame(tab1)
tab1_df$municipionombre <- rownames(tab1_df)
rownames(tab1_df) <- NULL
tab1_df <- tab1_df[,c("municipionombre","FA","FAA","FR","FRP","perc")]
# 输出表格
kable(tab1_df, caption = "城市频率统计结果")
点击编辑器的「Knit」按钮即可直接生成包含表格的完整PDF文件。

内容的提问来源于stack exchange,提问作者Majo
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:54:02