У меня есть кадр необработанных данных:
igroup=c("A", "B", "C")
demo_df=data.frame(date=c("2018-11-28", "2018-12-17", "2019-01-23"), group)
Фрейм необработанных данных:
date group
1 2018-11-28 A
2 2018-12-17 B
3 2019-01-23 C
Я хочу иметь фрейм данных, который расширяет дату до следующего столбца, но при этом сохраняет информацию о группе. Например, дата с 2018-11-28 по 2018-12-16 - для группы A, дата с 2018-12-17 по 2019-01-22 - для группы B, а 2019-01-23 - для группы C.
Это вывод (result_df
), который я хочу:
time=c(seq(as.Date("2018-11-28"), as.Date("2018-12-17")-1, by=1),
seq(as.Date("2018-12-17"), as.Date("2019-01-23")-1, by=1),as.Date("2019-01-23") )
group1=c(rep("A",as.numeric(as.Date("2018-12-17")-as.Date("2018-11-28"))),
rep("B",as.numeric(as.Date("2019-01-23")-as.Date("2018-12-17"))), "C" )
result_df=data.frame(time,group1 )
result_df
Мне интересно, есть ли более эффективный способ (использующий dplyr
) для решения этой проблемы.
Заранее спасибо.