У меня есть данные, которые состоят из наблюдений за диапазоном времени, в течение которого конкретный статус применяется к человеку.Человек может иметь несколько статусов в данный момент или вообще не иметь статистики (в этом случае наблюдения не будет).
ID STATUS START END
1 A 2013-03-07 2013-04-20
1 B 2013-04-10 2013-05-10
1 C 2013-04-16 2013-07-11
1 B 2013-07-25 2013-08-08
2 A 2013-09-10 2014-04-21
2 C 2013-12-27 2014-01-26
2 D 2014-04-28 2014-05-10
2 E 2014-05-11 2014-07-16
Я хотел бы преобразовать это в кадр данных, состоящий из отдельныхнепересекающиеся периоды и все статусы, которые применялись в течение этих периодов.Результат из примера будет таким, как показано ниже.
ID STATUS START END
1 A 2013-03-07 2013-04-10
1 A,B 2013-04-10 2013-04-16
1 A,B,C 2013-04-16 2013-04-20
1 B,C 2013-04-20 2013-05-10
1 C 2013-05-10 2013-07-11
1 B 2013-07-25 2013-08-08
2 A 2013-09-10 2013-12-27
2 A,C 2013-12-27 2014-01-26
2 D 2014-04-28 2014-05-10
2 E 2014-05-11 2014-07-16
Мои данные довольно большие, и поэтому я изо всех сил пытался найти эффективный способ сделать это.Я обнаружил полусвязанные проблемы, такие как здесь , но они обычно включают в себя сворачивание перекрывающихся областей в суперрегион, а не разбивание их на отдельные субрегионы.
Любая помощь или идеибудет оценено.Спасибо.