Подготовка продольных данных для анализа Каплана-Мейера / выживаемости - PullRequest
0 голосов
/ 30 мая 2020

Я работаю над набором продольных данных с несколькими пациентами, которые наблюдались ежегодно. При каждом наблюдении (= каждой строке) мы отслеживали, присутствует ли определенное условие (порядковая переменная). Кроме того, для каждого наблюдения (эхо-строка) у меня есть столбец с относительной разницей во времени до t = 0.

Теперь я хочу переставить эти данные для анализа Каплана-Майера, то есть я для каждого пациента, я need (либо) - Первое появление, когда присутствует мое состояние (означает:> 0). В результате должна появиться строка с пациентом, временем наблюдения / относительным временем и кодом события «1». - Если конидитон никогда не соблюдался (означает: столбец остается 0), мне нужна строка с пациентом, временем ПОСЛЕДНЕГО наблюдения и кодом события «0».

Я работаю над этим какое-то время, но получил для этого довольно длинный код. Однако я считаю, что должен быть более красивый способ сделать это в R - поэтому я ценю любую идею:)

dta.kaplanmeier <- dta.fu.wo.pre %>% 
  group_by(Patient) %>% 
  select(Patient, Occurence, DaysAfterInclusion) %>% 

  # Create event (1) when Occurence > 0
  mutate (event = if_else(Occurence > 0, 1, NULL)) %>% 

  # Create 0 if no event 1 reached
  mutate (event = if_else(DaysAfterInclusion == max(DaysAfterInclusion, na.rm = T) & max(event, na.rm = T) < 1, 0, event))  

dta.kaplanmeier.event0 <- dta.kaplanmeier %>% 
  filter (event == 0)

dta.kaplanmeier.event1 <- dta.kaplanmeier %>% 
  filter (event == 1) %>% 
  arrange(DaysAfterInclusion) %>% 
  slice(1)

dta.kaplanmeier <- rbind(dta.kaplanmeier.event0, dta.kaplanmeier.event1)
...