【发布时间】:2015-01-26 10:19:46
【问题描述】:
我正在准备数据集以使用分层 Cox 回归拟合条件风险集模型。我想知道是否有任何方法可以在不运行耗时循环的情况下创建我需要的变量。
基本上,我的数据框是这样的,显示给定国家 (ID) 在特定时间段内是否以及何时经历过某些事件:
year ID event time
1991 UK 0 1
1992 UK 0 2
1993 UK 0 3
1994 UK 0 4
1995 UK 0 5
1996 UK 0 6
1997 UK 0 7
1998 UK 0 8
1991 FR 0 1
1992 FR 1 2
1993 FR 1 3
1994 FR 0 4
1995 FR 0 5
1996 FR 1 6
1997 FR 0 7
1998 FR 0 8
1991 IT 1 1
1992 IT 0 2
1993 IT 0 3
1994 IT 0 4
1995 IT 0 5
1996 IT 1 6
1997 IT 0 7
1998 IT 0 8
我需要再创建两个变量:一个条件时间变量,类似于time,但每次发生事件时都会“重置时钟”;和一个 sequence 变量,指示国家处于哪个序列或阶段,即下一个事件是第二个、第三个、第四个……(数字应该在 之后增加 em>事件)。因此,数据将如下所示:
year ID event time cond.time sequence
1991 UK 0 1 1 1
1992 UK 0 2 2 1
1993 UK 0 3 3 1
1994 UK 0 4 4 1
1995 UK 0 5 5 1
1996 UK 0 6 6 1
1997 UK 0 7 7 1
1998 UK 0 8 8 1
1991 FR 0 1 1 1
1992 FR 1 2 2 1
1993 FR 1 3 1 2
1994 FR 0 4 1 3
1995 FR 0 5 2 3
1996 FR 1 6 3 3
1997 FR 0 7 1 4
1998 FR 0 8 2 4
1991 IT 1 1 1 1
1992 IT 0 2 1 2
1993 IT 0 3 2 2
1994 IT 0 4 3 2
1995 IT 0 5 4 2
1996 IT 1 6 5 2
1997 IT 0 7 1 3
1998 IT 0 8 2 3
任何人都知道如何以某种有效的方式做到这一点?我试图用ddply 函数来做这件事,但不知道怎么做。
【问题讨论】:
标签: r survival-analysis