如何格式化数据以在R中包含时间相关的协变量

时间:2017-09-07 15:03:41

标签: r

我真的很喜欢操纵我的数据集以结合时变协变量来进行cox回归,并且想知道是否有些人可以告诉我如何在R. SPSS中做到这一点但是真的想在R中进行分析。

让我解释下面的示例数据集。有4名患者,所有患者都有事件.1状态为0或1.事件1发生在时间。两名患者也有事件2(患者编号2和4)

structure(list(id = 1:4, event.1 = c(0L, 1L, 0L, 0L), time.1 = c(11L, 
21L, 20L, 23L), event.2 = c(NA, 1L, NA, 1L), time.2 = c(NA, 11L, 
NA, 9L)), .Names = c("id", "event.1", "time.1", "event.2", "time.2"
), class = "data.frame", row.names = c(NA, -4L))

事件2是时间依赖的协变量,在患者2和患者4的时间2发生。我能够分析数据并合并事件2作为时间依赖的协变量我需要转换数据长格式,如下所示:

structure(list(id = c(1L, 2L, 2L, 3L, 4L, 4L), start = c(0L, 
0L, 11L, 0L, 0L, 11L), stop = c(11L, 11L, 21L, 20L, 11L, 22L), 
event.1 = c(0L, 0L, 1L, 0L, 0L, 0L), event.2 = c(0L, 0L, 
1L, 0L, 0L, 1L)), .Names = c("id", "start", "stop", "event.1", 
"event.2"), class = "data.frame", row.names = c(NA, -6L))

正如您所看到的,患者2和患者4现在分别有两行,根据事件的发生,分配时间进程。以患者2为例,第一行表示开始'时间0和“停止”#39;时间为11,包括' event.1'和' event.2'状态为0.患者2的第二行给出了“开始”的信息。时间11,' event.2'之后发生了事件。'发生在'停止'时间为21个月。

在患者4中同样地,第二行表示在开始时#39;时间11,事件2发生并跟进完成在'停止'时间22岁的时间' event.1'状态是' 0'。

基本上,当一个时间相关的协变量(' event.2')发生时(event.2 == 1),那么我们得到2行相同的id。第一行从' start'开始。时间为0,以#'停止'结束。原始时间的值的时间。对于此行,event.1和event.2都将为' 0'。然后将为第二行分配一个“开始”'原创时间' time.2'和一个停止'原来' time.1'将event.1状态设置为' 0'或者' 1'但是事件.2,状态为' 1'。

对于冗长的解释感到抱歉,但希望更清楚。 我知道如何操纵我的数据框以将这个时变协变量纳入R?

提前致谢

Anoop

0 个答案:

没有答案