R语言绘制Kaplan-Meier生存曲线

我们在临床中经常使用生存曲线来表示患者的累积生存率或发病率,如下图所示,Kaplan-Meier生存曲线能够很好的表示出患者不同时间的发病率,生存率等关键数据,让人一目了然。
在这里插入图片描述
在这里插入图片描述
今天我们来演示一下如何做出像上面一样两张的图片,其中彩色的图片来自我们上次的SEER数据库的文章,题目为:Incidence, Prognostic Factors and Survival Outcome in Patients With Primary Hepatic Lymphoma。还是使用我们既往的乳腺癌数据,本来不想使用这个数据的,可是确实没找到好的数据。有需要的朋友关注公众号回复:乳腺癌,即可获得该数据。
需要survival、survminer两个包,需提前下载好。
我们先导入包和乳腺癌的数据

library(survival)
library("survminer")
library(foreign)
bc <- read.spss("E:/r/test/Breast cancer survival agec.sav",
                use.value.labels=F, to.data.frame=T)
bc <- na.omit(bc)
names(bc)

在这里插入图片描述
我们先来看看数据:
age表示年龄,pathsize表示病理肿瘤大小(厘米),lnpos表示腋窝淋巴结阳性,histgrad表示病理组织学等级,er表示雌激素受体状态,pr表示孕激素受体状态,status结局事件是否死亡,pathscat表示病理肿瘤大小类别(分组变量),ln_yesno表示是否有淋巴结肿大,time是生存时间,后面的agec是我们自己设定的,不用管它。
我们本次想比较是否有淋巴结肿大(ln_yesno)对乳腺癌生存结局的影响
先拟合和解析方程,得出了每组患者的事件发生数、生存时间等数据

fit <- survfit(Surv(time,status) ~ln_yesno, 
               data = bc) # 拟合方程
summary(fit)

在这里插入图片描述
使用ggsurvplot做图

ggsurvplot(fit, data = bc)

在这里插入图片描述
还可以添加可信区间和风险发生表

ggsurvplot(fit, data = bc,
           conf.int = TRUE, 
           risk.table = TRUE) # 添加风险表

在这里插入图片描述
还可以添加总的患者生存时间和P值

在这里插入代码片
```ggsurvplot(fit, # 创建的拟合对象
           data = bc,  
           conf.int = TRUE, # 显示置信区间
           pval = TRUE, # 添加P值
           add.all = TRUE) # 添加总患者生存曲线

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210226103523522.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RlZ2U4NTc=,size_16,color_FFFFFF,t_70)
还可以进一步美化

```r
ggsurvplot(fit, # 创建的拟合对象
           data = bc,  # 指定变量数据来源
           conf.int = TRUE, # 显示置信区间
           pval = "log-rank test p: 0.031", # 添加P值
           surv.median.line = "hv",  # 添加中位生存时间线
           risk.table = TRUE, # 添加风险表
           risk.table.col = "strata", # 根据分层更改风险表颜色
           xlab = "Follow up time(d)", # 指定x轴标签
           legend = c(0.7,0.2), # 指定图例位置
           legend.title = "Kaplan-Meier", # 设置图例标题
           legend.labs = c("pr=1", "pr=0"), # 指定图例分组标签
           break.x.by = 10,# 设置x轴刻度间距
           break.y.by = 0.1,# 设置y轴刻度间距
           palette = c("#E7B800", "#2E9FDF"),##更改线条颜色
           ggtheme = theme_bw()) #添加网格线

在这里插入图片描述
接下来做事件(死亡)发生率函数图

ggsurvplot(fit, data = bc, 
           conf.int = TRUE, # 增加置信区间
           fun = "cumhaz") # 绘制累计风险曲线

在这里插入图片描述
还可以进一步美化

ggsurvplot(fit, data = bc, 
           conf.int = TRUE, # 增加置信区间
           fun = "cumhaz",# 绘制累计风险曲线
           pval = "log-rank test p:0.0025", # 添加P值
           risk.table = TRUE, # 添加风险表
           risk.table.col = "strata", # 根据分层更改风险表颜色
           xlab = "Follow up time(d)", # 指定x轴标签
           legend = c(0.2,0.8), # 指定图例位置
           legend.title = "Kaplan-Meier", # 设置图例标题
           legend.labs = c("pr=1", "pr=0"), # 指定图例分组标签
           break.x.by = 10,# 设置x轴刻度间距
           break.y.by = 0.05,# 设置y轴刻度间距
           palette = c("#E7B800", "#2E9FDF"),##更改线条颜色
           ggtheme = theme_bw()) #添加网格线

在这里插入图片描述
更多精彩文章请关注公众号:零基础说科研。想获得本文乳腺癌数据,关注公众号后回复:乳腺癌,即可获得数据
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/dege857/article/details/114116628
今日推荐