【发布时间】:2019-07-27 04:47:42
【问题描述】:
我想定义一天的开始和结束时间。
例如,假设我不想在第二天上午 10 点之前开始新的一天。
对于示例数据,我有以下内容:
dt
1 2015-01-01 10:45:00
2 2015-01-01 11:30:00
3 2015-01-01 11:45:00
4 2015-01-01 12:00:00
5 2015-01-01 12:30:00
6 2015-01-01 13:00:00
7 2015-01-01 14:30:00
8 2015-01-01 15:00:00
9 2015-01-01 16:30:00
10 2015-01-01 16:45:00
11 2015-01-01 18:15:00
12 2015-01-01 18:45:00
13 2015-01-01 19:15:00
14 2015-01-01 21:45:00
15 2015-01-01 22:00:00
16 2015-01-01 23:00:00
17 2015-01-01 23:15:00
18 2015-01-02 00:00:00
19 2015-01-02 11:45:00
20 2015-01-02 17:00:00
21 2015-01-02 18:00:00
22 2015-01-02 19:15:00
23 2015-01-02 21:30:00
24 2015-01-02 21:45:00
25 2015-01-02 22:45:00
可以将此数据中的dput() 复制到 R 中。
data <- structure(list(dt = structure(c(1420111800, 1420127100, 1420129800,
1420133400, 1420149600, 1420150500, 1420154100, 1420155900, 1420157700,
1420200000, 1420203600, 1420206300, 1420209000, 1420215300, 1420218000,
1420224300, 1420229700, 1420231500, 1420234200, 1420236900, 1420239600,
1420240500, 1420241400, 1420244100, 1420245900), class = c("POSIXct",
"POSIXt"), tzone = "UTC")), row.names = c(NA, -25L), class = "data.frame")
我计算过去星期几的唯一方法是使用lubridate::wday,如下所示
data %>%
mutate(dow = wday(dt, label = T))
dt dow
1 2015-01-01 11:30:00 Thu
2 2015-01-01 15:45:00 Thu
3 2015-01-01 16:30:00 Thu
4 2015-01-01 17:30:00 Thu
5 2015-01-01 22:00:00 Thu
6 2015-01-01 22:15:00 Thu
7 2015-01-01 23:15:00 Thu
8 2015-01-01 23:45:00 Thu
9 2015-01-02 00:15:00 Fri # make Thu
10 2015-01-02 12:00:00 Fri
11 2015-01-02 13:00:00 Fri
12 2015-01-02 13:45:00 Fri
13 2015-01-02 14:30:00 Fri
14 2015-01-02 16:15:00 Fri
15 2015-01-02 17:00:00 Fri
16 2015-01-02 18:45:00 Fri
17 2015-01-02 20:15:00 Fri
18 2015-01-02 20:45:00 Fri
19 2015-01-02 21:30:00 Fri
20 2015-01-02 22:15:00 Fri
21 2015-01-02 23:00:00 Fri
22 2015-01-02 23:15:00 Fri
23 2015-01-02 23:30:00 Fri
24 2015-01-03 00:15:00 Sat # make Fri
25 2015-01-03 00:45:00 Sat # make Fri
如果假设新的一天直到第二天上午 10 点才开始,我标记了不正确的日期。
我很好奇有哪些选项可用于定义新一天的开始/结束时间。
【问题讨论】:
-
看起来您是在有意地以 UTC 定义点,尽管寻找要在夏威夷或大溪地时间之外定义的日子。这有意义吗?您真的要定义 UTC-10 时区以外的天数吗?
-
我认为更多地考虑这样一种情况,即您拥有诸如酒吧或俱乐部之类的业务,其中将销售定义为在午夜结束对其应用程序没有多大意义。定义打开/关闭时间比 0 到 2400 小时更有意义。