R语言生存分析中提取特定亚组(Stage I)并绘制Kaplan-Meier曲线的方法
针对Stage I亚组的Kaplan-Meier生存分析代码修改方案
要只展示Stage I亚组的生存分析结果和KM曲线,核心是先筛选出仅包含Stage I的数据,再进行单组生存分析,具体修改方案如下:
关键修改点
- 数据筛选:在读取数据后,添加代码过滤出
Stage == "I"的样本(注意匹配你数据中Stage字段的格式,若为数值型则去掉引号) - 生存分析公式调整:因为只剩一个亚组,
survfit的公式改为~1(表示单组分析),确保输出仅针对Stage I
修改后的完整代码
# 加载所需包 library(tidyverse) library(forcats) library(broom) library(survival) library(Hmisc) library(gmodels) library(lazyeval) library(plotrix) library(summariser) library(magrittr) library(survminer) library(dplyr) library(lattice) library(Formula) library(lubridate) library(ggfortify) library(readxl) # 读取数据并筛选Stage I亚组 icccdata = read_excel("ICCC_All_20072016.xls") # 关键:筛选仅Stage I的样本,若Stage为数值型则改为Stage == 1 icccdata_stageI <- icccdata %>% filter(Stage == "I") head(icccdata_stageI) # 创建生存对象 survival_object2 <- Surv(icccdata_stageI$Time, icccdata_stageI$CancerSurvival) str(survival_object2) # 单组生存分析(仅Stage I) my_survfit_STAGE_OS <- survfit(survival_object2 ~ 1, data = icccdata_stageI) # 输出生存分析结果,包含平均生存期 print(my_survfit_STAGE_OS, print.rmean = TRUE) # 可视化KM曲线,风险表展示该亚组的风险人数变化 ggsurvplot(my_survfit_STAGE_OS, risk.table = TRUE, xlab = "Time (years)", censor = TRUE, main = "Overall Survival - Stage I")
补充说明
- 如果你的
Stage字段是数值类型(比如用1代表I期),请把filter(Stage == "I")修改为filter(Stage == 1) - 修改后运行代码,所有生存分析结果和KM曲线都会仅针对Stage I亚组,其他Stage分组的数据会被完全排除,不会出现在输出中
内容的提问来源于stack exchange,提问作者AAM
相关产品推荐
相关产品推荐

