在RMarkdown HTML文件中为gtsummary表格添加下载按钮的实现咨询
在RMarkdown HTML文件中为gtsummary表格添加下载按钮的实现咨询
当然可以做到!你完全可以给gtsummary生成的表格加上CSV、Excel等格式的下载按钮,核心思路是把gtsummary表格转换成DT包的交互式表格——毕竟DT的下载功能已经很成熟了。我结合你的代码给你写好完整的实现方案:
首先,确保你已经加载了所需的包:gtsummary、dplyr、DT和readr。接下来,在你现有代码的基础上,我们把生成的gtsummary表格转换成DT交互式表格并配置下载按钮:
# 设置gtsummary的葡萄牙语主题 theme_gtsummary_language( language = "pt", decimal.mark = ",", big.mark = "." ) # 生成模拟数据 data <- data.frame( anoobito = sample(2019:2023, 23000, replace = TRUE), NOME_MUNICIPIO = sample(c("Rio de Janeiro", "São Paulo", "Araruama", "Queimados"), 23000, replace = TRUE) ) # 生成gtsummary表格 tbl <- data %>% select(anoobito, NOME_MUNICIPIO) %>% tbl_summary(by = anoobito, label = c(NOME_MUNICIPIO ~ "Município de Residência")) %>% add_overall(last = TRUE) %>% modify_table_body(fun = ~ dplyr::arrange(.x, desc(readr::parse_number(stat_0, locale = readr::locale(decimal_mark = ","))))) %>% modify_spanning_header(c("stat_1":"stat_5") ~ "**Ano do Óbito**") %>% modify_header(label = "**Município de Residência**") %>% bold_labels() %>% remove_row_type(type = "header") # 转换成DT交互式表格并添加多格式下载按钮 tbl %>% as_tibble() %>% # 从gtsummary对象中提取表格数据 DT::datatable( extensions = "Buttons", options = list( dom = 'Bfrtip', # 配置按钮、搜索框、表格等元素的布局 buttons = c('copy', 'csv', 'excel', 'pdf'), # 指定要显示的操作按钮 # 适配葡萄牙语的界面文本 language = list( buttons = list( copy = "Copiar", csv = "Exportar CSV", excel = "Exportar Excel", pdf = "Exportar PDF" ), info = "Mostrando _START_ a _END_ de _TOTAL_ registros", paginate = list(first = "Primeiro", last = "Último", next = "Próximo", previous = "Anterior") ) ) )
关键步骤说明:
- 提取表格数据:用
as_tibble()把gtsummary生成的表格对象转换成标准的数据框,这样DT就能识别并处理。 - 启用DT按钮扩展:通过
extensions = "Buttons"开启DT的下载/复制功能模块。 - 配置按钮与界面文本:因为你的表格是葡萄牙语环境,我们特意把按钮和分页、信息提示的文本都改成了葡萄牙语,让用户体验更顺畅。
- 布局控制:
dom = 'Bfrtip'设定了按钮(B)、搜索框(f)、表格(t)、信息栏(i)、分页栏(p)的显示顺序和位置。
如果想要保留gtsummary的原始格式风格,也可以先把gtsummary表格转换成gt对象,再结合gt的导出功能,但DT的交互式下载按钮在HTML文档中会更直观易用哦。
备注:内容来源于stack exchange,提问作者Lana Meijinhos
相关产品推荐
相关产品推荐

