У меня есть некоторые данные в формате, подобном воспроизводимому примеру ниже (код для ввода данных под вопросом, в конце). Две вещи:
- Не все даты имеют значение (т.е. многие даты отсутствуют).
- Некоторые даты имеют несколько значений, например 16 июня 2020 г.
#> date value
#> 1 30-Jun-20 20
#> 2 29-Jun-20 -100
#> 3 26-Jun-20 -4
#> 4 16-Jun-20 -13
#> 5 16-Jun-20 40
#> 6 9-Jun-20 -6
Для двухнедельных периодов, заканчивающихся по вторникам, я хотел бы взять сумму столбца value
.
Итак, в приведенном выше примере данных я хочу суммировать, заканчиваясь на:
- две недели, заканчивающиеся во вторник, 16 июня 2020 г. (т.е. с 3 июня 2020 г. по 16 июня 2020 г. включительно)
- две недели, заканчивающиеся во вторник, 30 июня 2020 г. (17 июня 2020 г. - 30 июня 2020 г. включительно)
- В конечном итоге я бы хотел, чтобы код продолжал суммировать все двухнедельные периоды, заканчивающиеся каждый второй вторник, когда будет больше данных.
Итак, мой желаемый результат:
#2_weeks_end total
#30-Jun-20 -84
#16-Jun-20 21
Я бы предпочел решения Tidyverse и lubridate.
Код для ввода данных ниже:
df <- data.frame(
stringsAsFactors = FALSE,
date = c("30-Jun-20","29-Jun-20",
"26-Jun-20","16-Jun-20","16-Jun-20","9-Jun-20"),
value = c(20L, -100L, -4L, -13L, 40L, -6L)
)
df