Ниже приведены примеры данных.
structure(list(Starts = structure(c(18064, 18064, 18064, 18064,
18064, 18064, 18064, 18064, 18064, 18064, 18064, 18064, 18064,
18064, 18085, 18085, 18085, 18085, 18085, 18085, 18085), class = "Date"),
Ends = structure(c(18070, 18070, 18070, 18070, 18070, 18070,
18070, 18070, 18070, 18070, 18070, 18070, 18070, 18070, 18091,
18091, 18091, 18091, 18091, 18091, 18091), class = "Date"),
Day = c("Mon on", "Tue on", "Wed on", "Thu on", "Fri on",
"Sat on", "Sun on", "Mon off", "Tue off", "Wed off", "Thu off",
"Fri off", "Sat off", "Sun off", "Mon on", "Tue on", "Wed on",
"Thu on", "Fri on", "Sat on", "Sun on")), row.names = c(NA,
-21L), class = c("tbl_df", "tbl", "data.frame"))
Я пытаюсь добавить фактическую дату последовательно для каждой строки, повторяя семь раз (в течение одной недели) на основе даты начала и окончания (недели начинаются сПонедельник и заканчивается воскресеньем). Желаемый результат:
structure(list(Starts = structure(c(18064, 18064, 18064, 18064,
18064, 18064, 18064, 18064, 18064, 18064, 18064, 18064, 18064,
18064, 18085, 18085, 18085, 18085, 18085, 18085, 18085), class = "Date"),
Ends = structure(c(18070, 18070, 18070, 18070, 18070, 18070,
18070, 18070, 18070, 18070, 18070, 18070, 18070, 18070, 18091,
18091, 18091, 18091, 18091, 18091, 18091), class = "Date"),
Day = c("Mon on", "Tue on", "Wed on", "Thu on", "Fri on",
"Sat on", "Sun on", "Mon off", "Tue off", "Wed off", "Thu off",
"Fri off", "Sat off", "Sun off", "Mon on", "Tue on", "Wed on",
"Thu on", "Fri on", "Sat on", "Sun on"), `Actual Date` = structure(c(18064,
18065, 18066, 18067, 18068, 18069, 18070, 18064, 18065, 18066,
18067, 18068, 18069, 18070, 18085, 18086, 18087, 18088, 18089,
18090, 18091), class = "Date")), row.names = c(NA, -21L), class = c("tbl_df",
"tbl", "data.frame"))
На основании исследования я понимаю, что мы можем получить фактические даты, используя функцию seq
:
date = seq(as.Date("2019-06-17"), as.Date("2019-06-23"), by = "day")
Однако, найдя трудным повторениедень на 7 в кадре данных. Цените вашу поддержку.