我正在为r中的时间相关Cox回归准备纵向数据集。我正在跟踪患者从出院日期(HospDis
)到审查或死亡(Death
),住院后长达10年。我有后续年份(FUPeriod
)、后续日期(FU
)和时变变量(Score
)的数据,如下表所示:
<表类>
ID
FUPeriod
HospDis 傅 死亡得分 tbody><<tr>1 0 2011-01-01 NA NA 75 11 2011-01-01 2011-10-10 NA 34 12 2011-01-01 NA 2012-03-15 NA 20 2011-02-18 NA NA 115 21 2011-02-18 2012-01-07 NA 124 22 2011-02-18 2013-01-09 NA 122 25 2011-02-18 2016-07-07 NA 126 210 2011-02-18 2021-04-30 NA 125 表类>
library(tidyverse)
library(lubridate)
df %>%
group_by(ID) %>%
mutate(end = interval(HospDis, FU) %/% months(1),
start = lag(end),
event = if_else(is.na(Score), 1, 0)) %>%
relocate(start, .after = Score)
# A tibble: 8 × 9
# Groups: ID [2]
ID FUPeriod HospDis FU Death Score start end event
<dbl> <dbl> <date> <date> <date> <dbl> <dbl> <dbl> <dbl>
1 1 0 2011-01-01 NA NA 75 NA NA 0
2 1 1 2011-01-01 2011-10-10 NA 34 NA 9 0
3 1 2 2011-01-01 NA 2012-03-15 NA 9 NA 1
4 2 0 2011-02-18 NA NA 115 NA NA 0
5 2 1 2011-02-18 2012-01-07 NA 124 NA 10 0
6 2 2 2011-02-18 2013-01-09 NA 122 10 22 0
7 2 5 2011-02-18 2016-07-07 NA 126 22 64 0
8 2 10 2011-02-18 2021-04-30 NA 125 64 122 0