0

我找到了几页关于如何将单个提取survfit到表中的页面。但是,我想将多个摘要提取到一个kable(或其他表格格式,如有必要)中。我将多个适合组合成一个列表,ggsurvplot_combine并希望在 R Markdown 的单个表中直接在下面总结它们。

我使用数据集创建了一个代表,该lung数据集模仿了我为分析所做的工作。

代码:

kmcombo_sex <- survfit(Surv(time, status) ~ sex, data = lung)
kmcombo_ph.ecog <- survfit(Surv(time, status) ~ ph.ecog, data = lung)
 
lung2 <- lung %>%
     mutate(kps_ord = case_when(
         ph.karno > 70 ~ 3,
         ph.karno > 50 ~ 2,
         TRUE ~ 1
     ))
 
kmcombo_kps <- survfit(Surv(time, status) ~ kps_ord, data = lung2)
 
kmlistexample <- list(kmcombo_sex, kmcombo_ph.ecog, kmcombo_kps)
kmlistexample

输出:

kmlistexample
[[1]]
Call: survfit(formula = Surv(time, status) ~ sex, data = lung)

        n events median 0.95LCL 0.95UCL
sex=1 138    112    270     212     310
sex=2  90     53    426     348     550

[[2]]
Call: survfit(formula = Surv(time, status) ~ ph.ecog, data = lung)

   1 observation deleted due to missingness 
            n events median 0.95LCL 0.95UCL
ph.ecog=0  63     37    394     348     574
ph.ecog=1 113     82    306     268     429
ph.ecog=2  50     44    199     156     288
ph.ecog=3   1      1    118      NA      NA

[[3]]
Call: survfit(formula = Surv(time, status) ~ kps_ord, data = lung2)

            n events median 0.95LCL 0.95UCL
kps_ord=1   7      6    122     105      NA
kps_ord=2  51     45    212     163     310
kps_ord=3 170    114    353     305     428

当我尝试传统方式时,我得到一个嵌套的survfit对象列表:

kmlistexample_sum <- summary(kmlistexample)
kmlistexample_sum 
     Length Class   Mode
[1,] 17     survfit list
[2,] 18     survfit list
[3,] 17     survfit list

在使用该功能之前我也尝试过取消列出summary,但无济于事:

kmlistexample_sum <- summary(unlist(kmlistexample))

如果一切都失败了,我可以回到每个survfit对象并单独提取我需要的东西。我希望可能有更简单的方法。

4

1 回答 1

0

发现该surv_median函数(survminer包的一部分)将汇总中位数和 95%CI 并可以存储在一个新对象中。我用于 R Markdown 的代码如下:

require(knitr)

surv_median(kmlistexample) %>% 
  kable()

结果(根本没有调整美学):

|strata | median| lower| upper|
|:------|------:|-----:|-----:|
|sex=1  |    270|   212|   310|
|sex=2  |    426|   348|   550|

|strata    | median| lower| upper|
|:---------|------:|-----:|-----:|
|ph.ecog=0 |    394|   348|   574|
|ph.ecog=1 |    306|   268|   429|
|ph.ecog=2 |    199|   156|   288|
|ph.ecog=3 |    118|    NA|    NA|

|strata    | median| lower| upper|
|:---------|------:|-----:|-----:|
|kps_ord=1 |    122|   105|    NA|
|kps_ord=2 |    212|   163|   310|
|kps_ord=3 |    353|   305|   428|
于 2021-04-06T16:00:44.220 回答