Я хочу идентифицировать те идентификаторы в наборе данных, по которым недавно развилось заболевание. Набор данных представляет собой дневник, в котором люди ежедневно отвечают на вопрос «да / нет» о том, есть ли у них заболевание.
ID <- c(1,1,1,1,1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3)
Date <- c("2020-03-10","2020-03-11","2020-03-12","2020-03-13","2020-03-14","2020-03-12","2020-03-13","2020-03-14","2020-03-15","2020-03-16","2020-03-17","2020-03-18", "2020-03-12","2020-03-13","2020-03-14","2020-03-15","2020-03-16","2020-03-17","2020-03-18","2020-03-19","2020-03-20")
Disease <- c("No","No","Yes","Yes","Yes","No","No","No", "Yes","Yes","Yes","No","Yes","Yes","No","No","No","Yes","Yes","Yes","Yes")
df <- data.frame(ID, Date, Disease)
df
ID Date Disease
1 2020-03-10 No
1 2020-03-11 No
1 2020-03-12 Yes
1 2020-03-13 Yes
1 2020-03-14 Yes
2 2020-03-12 No
2 2020-03-13 No
2 2020-03-14 No
2 2020-03-15 Yes
2 2020-03-16 Yes
2 2020-03-17 Yes
2 2020-03-18 No
3 2020-03-12 Yes
3 2020-03-13 Yes
3 2020-03-14 No
3 2020-03-15 No
3 2020-03-16 No
3 2020-03-17 Yes
3 2020-03-18 Yes
3 2020-03-19 Yes
3 2020-03-20 Yes
Однако, чтобы его можно было охарактеризовать как «недавно развившееся заболевание», человек должен соответствовать следующим условиям: 1. Человек должен иметь «да» не менее двух дней подряд. 2. Человек должен отвечать «нет» в течение как минимум 3 дней подряд перед первым «да».
В качестве результата я хотел бы получить количество людей, выполняющих эти условия. Итак, при извлечении набора данных, приведенного выше, это будет два (ID 2 + 3).
Кто-нибудь знает способ, как этого добиться? Заранее благодарим за уделенное время!