map生成的janitor::tabyl如何适配gt包导出为LaTeX
核心原因
purrr::map执行后返回的是由多个独立tabyl对象组成的列表,而gt::gt()仅支持单次处理单个表格类对象,因此需要遍历列表内的每个tabyl单独完成gt转换,再按需导出即可。
具体实现方案
1. 批量生成gt对象列表
使用imap替代基础map,可以直接获取对应变量名用来设置表格标题、规范导出文件名:
library(gt) library(janitor) library(purrr) library(datasets) gt_table_list <- gss_cat %>% # 筛选所有非数值变量 select(!where(is.numeric)) %>% imap(~{ # .x = 单个变量的tabyl结果,.y = 对应变量名 tabyl(.x) %>% # 将第一列默认的列名`.`替换为实际变量名 rename(!!.y := 1) %>% adorn_pct_formatting() %>% gt() %>% # 给每个表格加变量名作为标题 tab_header(title = paste0("变量「", .y, "」频数统计")) })
2. 导出为LaTeX文件
批量导出为单个变量对应独立tex文件
iwalk(gt_table_list, ~gtsave(.x, filename = paste0(.y, "_summary.tex")))
合并所有表格为单个tex文件导出
如果需要把所有变量的汇总表整合到同一份文档中,使用gt::gt_group合并后统一导出即可:
combined_gt <- gt_group(.list = gt_table_list) gtsave(combined_gt, filename = "全变量汇总统计.tex")
内容的提问来源于stack exchange,提问作者ibm
相关产品推荐
相关产品推荐

