You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将日期格式数据转换为R时间依赖生存分析所需格式?

日期格式转时间依赖生存分析数据格式操作指南

核心逻辑

把日期记录转换为以研究起始日为基准的天数区间,每个区间对应一段观察期,仅在事件发生的最后一行标记death=1。

具体步骤(R语言实现)

  • 1. 加载数据并转换日期类型
    先把字符格式的日期转为R可识别的Date类型,指定格式为dd-mm-yyyy:

    # 模拟原始数据
    df <- data.frame(
      subject = c(5,5,5,5),
      date = c("01-01-2022", "01-04-2022", "01-05-2022", "05-07-2022"),
      death = c(0,0,0,1),
      creatinine = c(0.9,1.5,1.2,1.2)
    )
    
    # 转换日期格式
    df$date <- as.Date(df$date, format = "%d-%m-%Y")
    
  • 2. 计算基准天数
    以第一条记录的日期为时间原点(time=0),计算每条记录对应的天数:

    df$time <- as.numeric(df$date - df$date[1])
    
  • 3. 生成time1和time2列
    通过移位操作生成区间的起始和终止时间,同时调整death列(仅最后一行保留1):

    # 生成time1:前一行的time值,第一行设为0
    df$time1 <- c(0, df$time[-nrow(df)])
    # 生成time2:当前行的time值
    df$time2 <- df$time
    # 调整death列:仅最后一行保留1,其余设为0
    df$death <- c(rep(0, nrow(df)-1), 1)
    
  • 4. 整理最终格式
    保留需要的列,得到目标格式:

    final_df <- df[, c("subject", "time1", "time2", "death", "creatinine")]
    

转换后结果

subject time1 time2 death creatinine
      5     0    90     0        0.9
      5    90   120     0        1.5
      5   120   151     0        1.2
      5   151   185     1        1.2

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 22:10:28