Обратите внимание это не дубликат других вопросов расширения временных рядов.Дата начала и окончания не указана, она основана на значении количества дней в месяце и повторяющихся месяцев.
Допустим, у меня есть следующий набор данных:
dates<-c("2019-01-07", "2019-02-07", "2019-03-07", "2019-01-22", "2019-02-25")
month<-c("Jan", "Feb", "March", "Jan", "Feb")
no_days_PerMonth <-c(31, 28, 31, 31, 28)
values<-c(54,89,100, 50, 6)
(test<-as.data.frame(cbind(dates, no_days_PerMonth, month, values)))
dates no_days_PerMonth month values
1 2019-01-07 31 Jan 54
2 2019-02-07 28 Feb 89
3 2019-03-07 31 March 100
4 2019-01-22 31 Jan 50
5 2019-02-25 28 Feb 6
То, что я хотел бы сделать, это создать новый фрейм данных, который принимает количество дней в месяце переменной dates
и увеличивает число строк, чтобы соответствовать определенному количеству дней в этом месяце и отображать столбец values
к каждому новому ряду.Я хочу что-то вроде следующего:
dates no_days_PerMonth month values new_date
2019-01-07 31 Jan 54 2019-01-01
2019-01-07 31 Jan 54 2019-01-02
2019-01-07 31 Jan 54 2019-01-03
2019-01-07 31 Jan 54 2019-01-04
2019-01-07 31 Jan 54 2019-01-05
2019-01-07 31 Jan 54 2019-01-06
2019-01-07 31 Jan 54 2019-01-07
2019-01-07 31 Jan 54 2019-01-08
2019-01-07 31 Jan 54 2019-01-09
2019-01-07 31 Jan 54 2019-01-10
2019-01-07 31 Jan 54 2019-01-11
2019-01-07 31 Jan 54 .
2019-01-07 31 Jan 54 .
2019-01-07 31 Jan 54 .
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-01-07 31 Jan 54
2019-02-07 28 Feb 89 2019-02-01
2019-02-07 28 Feb 89 2019-02-02
2019-02-07 28 Feb 89 2019-02-03
2019-02-07 28 Feb 89 2019-02-04
2019-02-07 28 Feb 89 2019-02-05
2019-02-07 28 Feb 89 2019-02-06
2019-02-07 28 Feb 89 2019-02-07
2019-02-07 28 Feb 89 2019-02-08
2019-02-07 28 Feb 89 2019-02-09
2019-02-07 28 Feb 89 2019-02-10
2019-02-07 28 Feb 89 .
2019-02-07 28 Feb 89 .
2019-02-07 28 Feb 89 .
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
2019-02-07 28 Feb 89
"..." просто представляет продолжение расширения данных (я не хотел тратить время на то, чтобы все это выписать).Кроме того, в приведенном ниже примере набора данных расширение показано только для первых двух дат в исходном наборе данных, потому что мне не хотелось тратить время на то, чтобы все это записать.