重新排序图例生存

Reorder legend survfit

我做了一个如下所示的回归:

survfit(Surv(YearsToEvent, Event) ~ CancerType, data = RegressionData)

从那里我得到这样的输出 table(为了便于阅读,我删除了一些列):

          n 
Cancer A  100  
Cancer B  200  

但是,当我使用 ggsurvplot 绘制输出时,我有一个 plot + a table 和“number at risk”,我希望能够手动调整图例的顺序.也就是说,我希望能够将 Cancer B 放在 Cancer A 之前。我在 SO 上发现了一个类似的线程:How to reorder strata in survfit object for ggsurvplot legend?。但是,我没有在其中找到任何答案。我试图在回归之前对数据框 RegressionData 进行排序,但没有成功。

有人能帮我吗?

这里是一个例子,你可以如何实现你想要的:

主要步骤是将分组变量转换为因子class。然后你可以手动定义级别:

其他步骤相同:

library(survminer)
library(survival)
library(tidyverse)

lung1 <- lung %>% 
  mutate(sex = factor(sex, levels = c(2, 1)))
  
ggsurvplot(
  fit = survfit(Surv(time, status) ~ sex, data = lung1),
  risk.table = TRUE,
  xlab = "Days", 
  ylab = "Overall survival probability")