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

如何在gtsummary表格中仅显示排序后的前10行?

保留gtsummary表格前10行的实现方法

我已经通过modify_table_body(fun = ~ dplyr::arrange(.x, desc(readr::parse_number(stat_0))))对gtsummary生成的表格按stat_0列的数值降序排序,现在希望仅展示该表格的前10行。相关代码及可复现数据如下:

原代码

data %>%
  select(anoobito, DESCRICAO) %>%
  tbl_summary(by = anoobito,
              label = c(DESCRICAO ~ "Causa Original")) %>%
  add_overall(last = T) %>%
  modify_table_body(fun = ~ dplyr::arrange(.x, desc(readr::parse_number(stat_0)))) %>%
  modify_spanning_header(c("stat_1":"stat_5") ~ "**Ano do Óbito**") %>%
  modify_header(label = '') %>%
  bold_labels() 

可复现数据

dados <- data.frame(anoobito = c(2019, 2019, 2020, 2020, 2020, 2020, 2021, 2021, 2021, 2021, 2022,
                                 2022, 2022, 2022, 2022, 2022, 2022, 2023, 2023, 2023, 2023, 2023),
                    DESCRICAO = c("A150", "B250", "D349", "T980", "R99", "O988", "L99", "Q220", "F530", "P88",
                                  "A445", "K098", "G87", "I10", "A240", "Q88", "V633", "Z100", "I340", "L260", 
                                  "A150", "A150"))

解决方案

只需在modify_table_body的排序步骤后添加dplyr::slice_head(n = 10),即可保留排序后的前10行数据。修改后的完整代码如下:

dados %>%
  select(anoobito, DESCRICAO) %>%
  tbl_summary(by = anoobito,
              label = c(DESCRICAO ~ "Causa Original")) %>%
  add_overall(last = T) %>%
  modify_table_body(fun = ~ .x %>%
                      dplyr::arrange(desc(readr::parse_number(stat_0))) %>%
                      dplyr::slice_head(n = 10)) %>%
  modify_spanning_header(c("stat_1":"stat_5") ~ "**Ano do Óbito**") %>%
  modify_header(label = '') %>%
  bold_labels() 

说明:slice_head(n = 10)会从排序后的表格数据中选取前10行,完美匹配需求。另外注意将原代码中的data替换为可复现数据的变量名dados,避免运行报错。

内容的提问来源于stack exchange,提问作者Lana Meijinhos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:42:33