【问题标题】:gtsummary: stack a data frame?gtsummary:堆叠数据框?
【发布时间】:2020-09-24 12:16:24
【问题描述】:

我一直在使用出色的 gtsummary 包来合并和堆叠表格。但是,我坚持使用以下用例。

有没有办法转置以下代码的输出(来自包 tbl_summary 帮助页面),以便列标题不是“25% percentile”和“75% percentile”,而行名称是“Drug A”和“药物 B”,这些被切换,以便列成为“药物 A”和“药物 B”,百分位数作为表中的行?我的目标是随后将此表堆叠到我已经生成的表上,以便显示这些结果。

tbl_survfit(survfit(Surv(ttdeath, death) ~ trt, trial), probs = c(0.25, 0.75))

output of above code

类似地,如果我要组装在 gtsummary 之外生成的值的数据框,是否可以将其堆叠或合并到 tbl_summary 对象(类似于 tbl_stack 或 tbl_merge 的工作方式)?

感谢大家的指点,

杰夫

【问题讨论】:

    标签: r gtsummary


    【解决方案1】:
    1. 如果需要,您可以将任何 gtsummary 对象转换为 tibble 以执行更多操作。下面是一个可以转换结果的示例:
    library(gtsummary)
    library(survival)
    
    fit <- survfit(Surv(ttdeath, death) ~ trt, trial)
    
    tbl_survfit(fit, probs = c(0.25, 0.75)) %>%
      as_tibble() %>%
      dplyr::slice(-1) %>%
      t()
    #>                    [,1]          [,2]         
    #> **Characteristic** "Drug A"      "Drug B"     
    #> **25% Percentile** "17 (16, 20)" "15 (13, 17)"
    #> **75% Percentile** "— (—, —)"    "— (—, —)"
    

    reprex package (v0.3.0) 于 2020 年 9 月 24 日创建

    1. 可以将任何行或列添加到 gtsummary 表,但您确实需要了解一些内部知识,以免破坏现有结构。每个 gtsummary 对象都是一个列表,其中有两个重要部分:.$table_header.$table_body.$table_body 是打印的数据框,.$table_header 是格式化指令。您可以向.$table_body 添加行,只需确保在堆叠之前类型相同,并且大多数情况下,您应该没问题。添加列有点棘手,但您也可以试一试!这里有详细信息:http://www.danieldsjoberg.com/gtsummary/articles/gtsummary_definition.html

    编码愉快!

    【讨论】:

    • 谢谢!对于 1) 是否可以将 tibble 转换为 gtsummary 对象,以便它可以与现有对象堆叠?当我转换为数据框并调用 tbl_summary 时,我看不出这是如何实现的。结果表不显示百分位数的值,而是显示其中的 n 个
    • 一旦我们将 gtsummary 对象转换为 tibble,它就不能再转换回 gtsummary 对象了。
    猜你喜欢
    • 2023-01-11
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多