У меня есть data.frame с недельными данными, как показано ниже:
structure(list(date = structure(1:9, .Label = c("2017-01-01",
"2017-01-08", "2017-01-15", "2017-01-22", "2017-01-29", "2017-02-05",
"2017-02-12", "2017-02-19", "2017-02-26"), class = "factor"),
value = c("6", "5", "5", "5", "5", "5", "6", "8", "10")), row.names = c(NA,
-9L), class = "data.frame")
Теперь я хочу рассчитать ежедневные данные со сглаживанием, которое изменяет значения изо дня в день линейно с величиной изменения, равнойдо одной седьмой раз в неделю.Таким образом, ожидаемый результат будет:
structure(list(date = structure(c(17167, 17168, 17169, 17170,
17171, 17172, 17173, 17174, 17175, 17176, 17177, 17178, 17179,
17180, 17181, 17182, 17183, 17184, 17185, 17186, 17187, 17188,
17189, 17190, 17191, 17192, 17193, 17194, 17195, 17196, 17197,
17198, 17199, 17200, 17201, 17202, 17203, 17204, 17205, 17206,
17207, 17208, 17209, 17210, 17211, 17212, 17213, 17214, 17215,
17216, 17217, 17218, 17219, 17220, 17221, 17222, 17223, 17224,
17225), class = "Date"), value = c(6, 5.857, 5.714, 5.571, 5.429,
5.286, 5.143, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5.143, 5.286, 5.429, 5.571,
5.714, 5.857, 6, 6.286, 6.571, 6.857, 7.143, 7.429, 7.714, 8,
8.286, 8.571, 8.857, 9.143, 9.429, 9.714, 10, 8.57, 7.14)), row.names = c(NA,
-59L), class = c("tbl_df", "tbl", "data.frame"))
Обратите внимание, что последние две даты не находятся в пределах промежутка времени от первого фрейма данных, и они уменьшаются на (10 - 0) / 7, поскольку разница рассчитывается по последним наблюдаемымот (10) до 0.
Как получить ожидаемый результат?