我试图在Stata中间隔最近的15分钟间隔,因此例如2017年12月31日23:58将成为2018年1月1日00:00。我有时间(根据我对文档的理解)存储自1960年开始以来的毫秒数。所以我认为这样做:
gen round = round(datetime,60000 * 15)
然而,这并不是很有效。例如2017年11月3日19:45:27成为2017年11月3日19:46:01,当我认为我应该成为19:45:00。有谁知道我在这里失踪了什么?
答案 0 :(得分:1)
让我们展示一个说明我的评论的实际示例,您需要将datetime
值存储为double
而不是float
。
. clear
. set obs 1
number of observations (_N) was 0, now 1
. gen double datetime = clock("Nov 03, 2017 19:45:27","MDYhms")
. gen round_f = round(datetime, 60000*15)
. gen double round_d = round(datetime, 60000*15)
. format datetime round_f round_d %tc
. list, clean noobs
datetime round_f round_d
03nov2017 19:45:27 03nov2017 19:46:01 03nov2017 19:45:00