运行单因素生存分析(Univariate Survival Analysis)报错及分组分析咨询
单因素生存分析报错解决及需求实现方案
核心错误原因
- 参数逻辑错误:
Surv()函数(analyse_survival内部调用)的入参顺序为Surv(生存时间, 终点事件),你错误将年龄传入终点事件位置,还把真正的终点事件OutcomeMRE放到了分组参数by中,导致生存状态识别失效。 - 删失数据不规范:未发生终点的病例生存时间设为
NA,生存分析模型无法识别缺失的时间值。 - 变量名错误:后续代码调用的
Age变量不存在,实际数据集中为AgeMRE。
前置数据处理
先对数据集做规范化处理:
library(survivalAnalysis) library(dplyr) # 构造原始数据集 AgeMRE <- c(60, 67, 71, 66, 71, 73, 50, 67, 67, 61) OutcomeMRE <- c(0, 1, 0, 1, 1, 1, 1, 1, 0, 1) EventMRE <- c(NA, 3, NA, 2, 3, 12, 2, 6, NA, 11) datasetMRE <- data.frame(AgeMRE, EventMRE, OutcomeMRE) # 处理删失时间:将未发生终点的NA替换为研究最大随访时间(此处为12个月) datasetMRE$EventMRE <- ifelse(is.na(datasetMRE$EventMRE), 12, datasetMRE$EventMRE) # 生成年龄二分类分组变量:≥70为1,<70为0 datasetMRE$Age_Group <- ifelse(datasetMRE$AgeMRE >= 70, 1, 0)
分析需求实现
1. 年龄作为连续变量的单因素生存分析
result_continuous <- datasetMRE %>% analyse_survival(vars(EventMRE, OutcomeMRE), by = AgeMRE) # 输出分析结果(含HR、置信区间、P值等指标) print(result_continuous)
2. 年龄二分类分组的单因素生存分析
result_group <- datasetMRE %>% analyse_survival(vars(EventMRE, OutcomeMRE), by = Age_Group) # 输出分析结果(含logrank检验P值、组间HR等指标) print(result_group)
内容的提问来源于stack exchange,提问作者Arduan
相关产品推荐
相关产品推荐

