Я хотел бы объединить строки в наборе данных df
таким образом, чтобы для каждого идентификатора записи, если End_Date
строки равно Start_Date
следующей строки, я хотел бы их объединить.
Текущая логика, о которой я думаю, состоит в том, чтобы сначала сгруппировать по идентификатору, а затем перейти от строки 1 к строке n(). Если End_Date
строки 1 равно Start_Date
строки 2, замените End_Date
строки 1 на End_Date
строки 2 и удалите строку 2. Затем сравните строку 1 с новой строкой 2 и так далее.
Очень ценю любую помощь или предложения о том, как написать код для этого. Благодарю вас!
df <- read.table(text = "
ID Start_Date End_Date
1 09/09/2016 11/09/2016
1 11/09/2016 17/09/2016
1 17/09/2016 23/11/2016
1 23/11/2016 28/11/2016
1 28/11/2016 14/12/2016
1 14/12/2016 22/12/2016
1 22/12/2016 23/12/2016
1 25/12/2016 03/01/2017
1 06/01/2017 07/02/2017
1 07/02/2017 22/02/2017
1 22/02/2017 27/02/2017
1 28/03/2017 30/05/2017
1 12/06/2017 03/07/2017
1 03/07/2017 04/07/2017
1 14/08/2017 14/08/2017
1 15/08/2017 23/08/2017
1 23/08/2017 24/08/2017
1 24/08/2017 28/08/2017
1 07/09/2017 07/09/2017
1 24/09/2017 24/09/2017
1 01/10/2017 08/11/2017
1 08/11/2017 31/12/2017
2 08/08/2017 10/08/2017
2 10/08/2017 11/08/2017", stringsAsFactors = FALSE, header = TRUE)
Выходные данные должны выглядеть так:
df_new <- read.table(text = "
ID Start_Date End_Date
1 09/09/2016 23/12/2016
1 25/12/2016 03/01/2017
1 06/01/2017 27/02/2017
1 28/03/2017 30/05/2017
1 12/06/2017 04/07/2017
1 14/08/2017 14/08/2017
1 15/08/2017 28/08/2017
1 07/09/2017 07/09/2017
1 24/09/2017 24/09/2017
1 01/10/2017 31/12/2017
2 08/08/2017 11/08/2017", stringsAsFactors = FALSE, header = TRUE)