【问题标题】:Creating survival curve from summary plot从摘要图中创建生存曲线
【发布时间】:2021-12-01 10:37:21
【问题描述】:

我使用的软件给出了 survfit 函数的摘要输出。获取此信息并使用 ggsurvplot 函数的最简单方法是什么?我了解此摘要数据的格式与 ggsurvplot 函数的传统数据框不同。我应该使用另一个函数来代替 Kaplan-Meier 曲线吗?任何信息将不胜感激。值得注意的是,生存概率在摘要输出中舍入为 1,因此如果我可以使用 n.risk 和 n.event 列来计算更准确的生存率,那就太好了。谢谢!

截图如下:

structure(list(time = c(11L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 
20L, 21L), n.risk = c(399490L, 399133L, 398853L, 398558L, 398078L, 
397755L, 397487L, 397273L, 397108L, 396949L), n.event = c(1L, 
1L, 3L, 2L, 2L, 1L, 2L, 3L, 2L, 6L), survival = c(1, 1, 1, 1, 
1, 1, 1, 1, 1, 1), std.err = c(2.5e-06, 3.54e-06, 5.6e-06, 6.63e-06, 
7.52e-06, 7.93e-06, 8.69e-06, 9.73e-06, 1.04e-05, 1.21e-05), 
    lowerci = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1), upperci = c(1, 
    1, 1, 1, 1, 1, 1, 1, 1, 1)), row.names = c(NA, -10L), class = "data.frame")
````

【问题讨论】:

    标签: r ggplot2 survival-analysis survival


    【解决方案1】:

    不确定是否可以在没有原始数据的情况下重新创建 survplot,例如使用内置的肺数据集:

    library(survival)
    library(survminer)
    #> Loading required package: ggplot2
    #> Loading required package: ggpubr
    #> 
    #> Attaching package: 'survminer'
    #> The following object is masked from 'package:survival':
    #> 
    #>     myeloma
    
    fit <- survfit(Surv(time, status) ~ sex, data = lung)
    
    # Create a 'summary object'
    sum_fit <- summary(fit)
    
    df1 <- data.frame(time=fit$time,
                      nRisk=fit$n.risk,
                      nRiskRel=fit$n.risk/max(fit$n.risk))  
    
    df2 <- data.frame(time_sum=sum_fit$time,
                      nRisk_sum=sum_fit$n.risk,
                      nRiskRel_sum=sum_fit$n.risk/max(sum_fit$n.risk))
    
    ggplot1 <- ggsurvplot(fit, data = lung)$plot
    ggplot1 +
      geom_point(aes(x=time, y=nRiskRel), data = df1, alpha=0.5, size=3) +
      geom_point(aes(x=time_sum, y=nRiskRel_sum), data = df2, alpha=0.5, size=3, color="blue")
    

    nrow(df1)
    #> [1] 206
    nrow(df2)
    #> [1] 150
    

    reprex package (v2.0.1) 于 2021 年 10 月 13 日创建

    摘要对象 ('sum_fit') 中的点数少于原始数据 ('fit')。如果您想准确地重新创建生存曲线图,我认为这可能是一个问题。 'fit' 和 'sum_fit' 列表对象之间也存在差异,您需要更正才能使用 ggsurvplot 函数。我很想看看是否有人能巧妙地解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-16
      相关资源
      最近更新 更多