如何在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
相关产品推荐
相关产品推荐

