0

我使用 kaplan-Meir 方法完成了多个生存模型,每个生存模型都是通过根据数据表中显示的组列将数据子集提取到不同的 R 数据表来构建的。我可以单独绘制每条生存曲线,但我想在一个图中绘制所有这些不同的模型。最好的方法是什么。

 userid        lifespan_days              event        group
2                    4657                    1           A
4                    4658                    1           A
16                   1106                    1           A
50                    458                    1           A
51                   4393                    1           A
57                    305                    1           A

在 ggplot 中执行此操作会很棒,通过搜索我发现以下内容ggplot2- 在同一个图上绘制多个模型,但由于我的数据性质,我在执行此类场景时遇到了问题。例如userid来自多个网站,因此userid=2可以存在于另一个组下。

可以说使用上面的 data.table 我创建了以下内容:

a_time <- dt$lifespan_days
a_event <- dt$event
survival_model_a <- survfit(Surv(a_time, a_event) ~ 1)
plot(survival_model_a)

这只会在同一个图中绘制一个相似点我想绘制我为不同的 b 组数据构建的模型data.table / data.frame

4

2 回答 2

2

您可以使用以下方法在一个中绘制所有模型而无需子集:

dt <- read.table(header=T, text="userid        lifespan_days              event        group
2                    4657                    1           A
4                    4658                    0           A
16                   1106                    1           B
50                    458                    1           B
51                   4393                    1           C
57                    305                    1           A")

library(survival)
a_time <- dt$lifespan_days
a_event <- dt$event
survival_model_a <- survfit(Surv(a_time, a_event) ~ dt$group)
plot(survival_model_a, col = rainbow(length(unique(dt$group))))
于 2014-05-07T06:44:28.093 回答
2

用于lines()后续的绘图调用,如下所示:

b_time <- dtB$lifespan_days
b_event <- dtB$event
survival_model_b <- survfit(Surv(b_time, b_event) ~ 1)
lines(survival_model_b)

如果你想使用 ggplot2,这个问题有两个很好的答案。

于 2014-05-06T22:25:40.303 回答