У меня есть набор данных о зачислении в курс с течением времени, на что указывают start_date и end_date для ~ 50 000 идентификаторов.Я заинтересован в том, чтобы охватить как периоды зачисления, так и неучастия в этой группе за определенный период времени, в частности, с '2001-06-01' до '2015-01-01', даже если данные возвращаются ранее.Я заинтересован в создании строк для каждого идентификатора, который фиксирует интервалы дат для этих периодов регистрации / отсутствия регистрации, и создания дополнительной переменной, которая классифицирует эти периоды;'до регистрации', 'зарегистрирован', 'между регистрацией', 'никогда не зарегистрирован'.
Для уточнения;
Некоторые примеры данных
id = c(1,3,3,3,5,5)
entry_date = c(NA, '1996-05-09', '2005-12-12', '2013-12-19', '2011-11-05','2012-12-10')
exit_date = c(NA, '2005-12-10', '2008-12-10', '2016-01-01', '2016-09-01', '2013-02-20')
test
id entry_date exit_date
1 NA NA
3 1996-05-09 2005-12-10
3 2005-12-12 2008-12-10
3 2013-12-19 2016-01-01
5 2011-11-05 2012-09-01
5 2012-12-10 2013-02-20
Мой предполагаемый результат будет:
id entry_date exit_date category
1 2001-06-01 2016-01-01 Never enrolled
3 2001-06-01 2005-12-10 Enrolled
3 2005-12-10 2005-12-12 Between enrollment
3 2005-12-12 2008-12-10 Enrolled
3 2008-12-10 2013-12-19 Between enrollment
3 2013-12-19 2016-01-01 Enrolled
5 2001-06-01 2011-11-05 Prior to enrollment
5 2011-11-05 2012-09-01 Enrolled
5 2012-09-01 2012-12-10 Between enrollment
5 2012-12-10 2013-02-20 Enrolled
5 2013-02-20 2016-01-01 Between enrollment
Любая помощь в достижении чего-то подобного будет очень признательна!