Chapter 3 生成生存时间变量

当你的生存数据不是直接提供 time(随访时长,单位:天)与 status(结局状态:0=截尾/未观察到事件,1=事件发生),而是以两个日期表示(如“开始观察日期”“结束/事件日期”),本模块可将两日期相减,自动生成生存时间变量 time(天) 并加入数据集中。

本页只生成时间差(天)。status 变量请在其它页面准备或校对(如“数据标签批量替换”或在原始数据中整理)。

3.0.1 何时使用 / 何时跳过

  • 适合使用:手头只有开始日期结束/事件日期两列,需要计算生存天数用于后续 Kaplan–Meier、Cox 等分析。

  • 建议跳过:数据中已经有合格的 time 列;暂不做生存分析;日期字段混乱未清洗(请先规范日期格式再来)。

3.0.2 概念速览(与方案一致最重要)

  • 开始观察日期:与研究目的对应,可是研究开始日随机化日首次诊断日首次治疗日等。请按你的研究方案选用。

  • 结束观察日期

    • 发生事件(如死亡/复发):取事件发生日

    • 未发生事件:取末次随访日或研究截止日。

  • status 含义(本页不生成):建议 1=事件发生0=未发生(截尾)。请确保与结束日期的定义一致配套

首先务必按照下面的格式准备数据(网站上可下载,下载后在此基础上修改):

下载csv样例数据(右击另存为)

日期格式为:

导入数据后,需要在“定义字段”的模块将字段属性设置为”character”或 “factor”,请务必不要设置为“date”:

3.0.3 进入“生成生存时间变量”

在“数据准备”中点击“数据治理修改筛选”,在打开的导航栏中点击 生成生存时间变量 页面。如暂不分组,直接跳过到下一页即可:

3.0.4 选择开始日期

在左侧 “开始观察日期” 下拉框中选择列(如 rand_date / diag_date / treat_date)。

3.0.5 选择结束日期

“结束观察日期” 下拉框中选择列(如 death_date / last_followup)。系统自动排除你已选择的开始列。

3.0.6 命名新变量

“请给新生成的代表时间差值的变量起一个名字” 中填写新列名(默认 time1)。

避免与现有列同名;若同名将覆盖原列。

3.0.7 生成与复位

  • 点击 “生成新数据”:系统将两日期相减,得到生存天数(整数),并把新列追加到数据最右侧
  • 点击 “复位”:撤销本页所有修改,恢复到初始数据。

3.0.8 结果查看与下载

  • 上方文字区域会提示:系统将两个日期差值作为 time(天)新增到右侧;

  • 下方页签可切换 “原始数据”“新数据” 进行对比核对;

  • 点击 “下载修改后数据” 导出 new_surv_data-YYYY-MM-DD.xlsx

3.0.9 警告信息解读

  • “存在日期缺失”:某些行的开始或结束日期为空,新 time 将为 NA;请核对源数据或先做缺失处理。

  • “结束日期早于开始日期”:常见于列选择错误或数据录入错误。请检查:

    • 是否反选了列;

    • 是否存在日期拼写/录入错误;

    • 是否跨时区/跨日历导致的异常(极少见)。 该情形下,系统不会写入新列,请修正后重试。

  • “无法解析的日期格式”:不同格式混用(如 2024-01-055/1/24 混在同一列)会导致解析失败。请先统一为同一种格式(推荐 YYYY-MM-DD)。

3.0.10 质量核对清单(强烈建议)

  • 非负性time 应 ≥ 0;大量负值或异常大值表示日期选择或数据源有问题;

  • 缺失比例:统计 time 的缺失行数,必要时回到“缺失值填补”或数据清洗环节;

  • 分布合理:是否与疾病自然史、随访周期一致(过多的 0 天或极端长尾需要解释);

  • status 一致:事件=1 的行其结束日期应为事件日;截尾=0 的行应为末次随访日

  • 命名可读:如 OS_time_dayPFS_time_day,在报告中更直观。

3.0.11 与后续生存分析的衔接

  • 完成本页后,你应拥有:

    • 时间 time(单位:天)
    • 状态 status(0/1)(请在其它页面准备或复核)。
  • 在生存分析模块(KM 曲线、Cox 回归等)中直接选择 timestatus 即可。

  • 如需按月/年展示,可在“生成新变量”模块中基于 time 派生 time_month = time/30.44 等,但建模时建议保留天作为基础单位。

3.0.12 常见问题与排查

  • 新列未出现:确认已点击“生成新数据”;检查是否被同名列覆盖;在右侧表格最右端查看。

  • 导出失败:请先生成成功(表格中出现新列)再下载。

  • 存在大量 NA:多为日期列含空值或无法解析;请在数据源统一日期格式或先进行缺失填补。

  • time=0 是否正常? 若开始日=结束日则为 0 天,通常允许;请确认与你的方案定义一致(如事件当日即入组的研究)。

3.0.13 完成后的标志

  • “新数据”中多出一个你命名的 time 类新列,取值为非负整数(天)

  • 关键样本行抽查计算正确

  • 成功导出包含 time 的数据文件,并可用于后续生存分析。

3.0.14 温馨提示

  • 统一日期格式为 YYYY-MM-DD 最稳妥;

  • 先与研究方案对齐“开始/结束日期”的定义,再点击生成;

  • 重要结论前建议抽样核查关键病例的日期差计算是否正确,并记录该生成过程以便复现审稿