У меня есть набор данных для 10 пациентов, который выглядит следующим образом:
df = data.frame(id=c(1:10),
event1=sample(1:4, 10, replace=T),
date1=Sys.Date() - sample(100:500, 10, replace=T),
event2=sample(1:4, 10, replace=T),
date2=Sys.Date() - sample(100:500, 10, replace=T),
event3=sample(1:4, 10, replace=T),
date3=Sys.Date() - sample(100:500, 10, replace=T),
follow_up=Sys.Date() - sample(10:100, 10, replace=T))
У каждого пациента есть несколько событий, и каждому событию соответствует дата. Событие и дата также могут быть NA, если они не произошли. Датой наблюдения является последняя дата, когда пациент был проверен на наличие событий.
Я создал переменную для исхода кровотечения (в данном случае, если событие == 2) следующим образом:
all_vars_quo <- quo(c(event1, event2, event3))
df %>% rowwise() %>%
mutate(bleeding_no = sum(!!all_vars_quo==2, na.rm=TRUE)) %>%
mutate(bleeding = if_else(bleeding_no>0,1,0))
Теперь я хотел бы добавить дополнительную переменную "bleeding_date" с соответствующей датой кровотечения. Если у одного и того же пациента произошло более одного кровотечения, я хотел бы использовать дату, которая является самой далекой в прошлом. Если кровотечения не произошло, я хотел бы использовать дату при последующем наблюдении. До сих пор я не смог придумать работающий кусок кода ... Любая помощь очень ценится!