У меня есть штатное рота, которое автоматически создается при загрузке данных. Время от времени даты начала и окончания не будут полностью правильными. Например, кто-то может быть в ротации между 01.04.2017 и 04.10.2009, но затем выходные данные разбивают этот период на две строки, например, с 01.04.2009 до 05.04.2009 и 05.04.2009. до 10/04/2019. Это показано в кадре данных StaffRota с желаемым выводом, показанным в StaffRota2.
#create some data - shows the raw data from the download
StaffRota<-data.frame(Name=c("Ian", "Ian", "Ian", "Fred","Fred","Mark","Alex","Ian","Fred","Ian","Fred","Fred"),
RotaStart=c("2019-04-01","2019-04-03", "2019-04-06","2019-04-02","2019-04-05","2019-04-02","2019-04-02","2019-07-01","2019-08-01","2019-04-12","2019-09-02","2019-09-06"),
RotaFinish=c("2019-04-03", "2019-04-06", "2019-04-10", "2019-04-05", "2019-04-10", "2019-04-10", "2019-04-05","2019-07-31","2019-08-30","2019-04-20","2019-09-04","2019-09-08"))
StaffRota$RotaStart<-as.Date(StaffRota$RotaStart, "%Y-%m-%d")
StaffRota$RotaFinish<-as.Date(StaffRota$RotaFinish, "%Y-%m-%d")
#how the dataframe should look
StaffRota2<-data.frame(Name=c("Ian", "Fred","Mark","Alex","Ian","Fred","Ian","Fred","Fred"),
RotaStart=c("2019-04-01","2019-04-02","2019-04-02","2019-04-02","2019-07-01","2019-08-01","2019-04-12","2019-09-02","2019-09-06"),
RotaFinish=c("2019-04-10","2019-04-10", "2019-04-10", "2019-04-05","2019-07-31","2019-08-30","2019-04-20","2019-09-04","2019-09-08"))
Я хочу преобразовать данные так, чтобы столбцы, в которых даты были разделены, как показано в StaffRota, были объединены в один непрерывный запуск. и дата окончания, как показано в StaffRota2. У кого-нибудь есть предложения?