Написание For Loop в R для анализа выживания - PullRequest
0 голосов
/ 03 декабря 2018

У меня проблемы с извлечением данных о выживаемости за определенное время (1,5 и 10 лет).я попытался подвести итоги (подходит, времена = c (1,5,10)), но это не дает правильные оценки выживаемости.

Я написал следующий код для цензуры данных, чтобы включить только когортудля года 1 и извлеките выживание для года 1:

TIME <- 1

tmp <- data1[data1$tstart < TIME*365.25,]
tmp <- tmp[!duplicated(tmp$id,fromLast = T),]
tmp$status[tmp$time >TIME*365.25] <- 0
tmp$time[tmp$time > TIME*365.25] <- TIME*365.25

fit <- survfit(Surv(time/365.25, status) ~ drug_dosage, data=tmp)
fit_year <- summary(fit, times = TIME)

Мой вопрос: как я могу создать цикл для времени, включающего в себя годы 5 и 10. Заранее спасибо.

Этопример того, как выглядят мои данные.id time status tstart
1 2131 2311 0 0
2 2131 2311 0 17
3 2131 2311 0 50
4 2131 2311 0 105
5 2131 2311 0 133
6 2131 23110 153
7 2131 2311 0 209
8 2131 2311 0 238
9 2131 2311 0 276
10 2131 2311 0 317

1 Ответ

0 голосов
/ 03 декабря 2018

Я думаю, это то, что вы ищете.Было бы здорово, если предоставленные вами примеры данных соответствуют коду кода, который вы предоставляете, чтобы обеспечить воспроизводимость.

for (i in c(1,5,10)){
  TIME <- i
  tmp <- data1[data1$tstart < TIME*365.25,]
  tmp <- tmp[!duplicated(data$id,fromLast = T),]
  tmp$status[tmp$time >TIME*365.25] <- 0
  tmp$time[tmp$time > TIME*365.25] <- TIME*365.25

  fit <- survfit(Surv(time/365.25, status) ~ drug_dosage, data=tmp)
  fit_year <- summary(fit, time = TIME)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...