【发布时间】:2019-10-16 12:00:33
【问题描述】:
以下是示例数据。
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 天。感谢您的支持。
【问题讨论】:
-
你能保证行数总是能被7整除(每个数据)吗?
-
是的,我可以看到从周一到周日的所有 7 天