我有 4 个感兴趣的区间:
- 0 - 30 天
- 30 天 - ½ 年
- ½ - 2 年
- 2 年 - 10 年
现在我正在像这样对我的数据集进行子集化:
# Set time period
time_period.first <- 30/365.25
time_period.intermediate <- .5
....
# TREOP = Time in years
data.first = all_data
# Remove already censored data
data.intermediate = subset(data.first, data.first$TREOP > time_period.first)
# Set all outside as censored
data.first$RREOP[data.first$TREOP > time_period.first] = 0
data.first$TREOP[data.first$TREOP > time_period.first] = time_period.first
data.intermediate$RREOP[data.intermediate$TREOP > time_period.second] = 0
data.intermediate$TREOP[data.intermediate$TREOP > time_period.second] = time_period.second
....
我正在使用“生存”包进行 cox 回归(我还使用“设计”包中的 cph 进行 C 统计计算)。
我的问题:
有没有更好的方法来执行这种左截断和右删失?
理想的情况是:
# TREOP - time in years
# RREOP - event
surv <- Surv(TREOP, RREOP, start=30/365.25, stop=.5)
我查看了帮助和时间,time2 & type 似乎确实可以处理截断,但我认为这是一个更复杂的设置,受试者在 22 天后进入研究,而不是将数据分成间隔。
编辑
我在生存包中找到了 survSplit() 函数,但是虽然它的描述似乎是正确的,但我不知道如何驯服它——这个例子并没有真正帮助我。有没有人有这方面的经验?