我有%tc格式的手术开始时间(new_time
),我也有几分钟的手术时间(th_time
)(例如140分钟)和未格式化。
我想知道如何继续将th_time
添加到new_time
以获得手术的结束时间。
这是我到目前为止格式化我的变量:
gen time_temp = substr(intotheatre, strpos(intotheatre," ")+1, . )
gen new_time = clock(intotheatre, "DMY hms",2050)
format new_time %tc
generate hrs=hh(new_time)
generate mins=mm(new_time)
generate secs=ss(new_time)
drop if th_time < 0 | th_time == .
drop if theatre==""
sort theatre new_time
我已经阅读过Nick Cox的Stata Journals,但我尝试生成end_time的每一次尝试最终都是以&#39; type mismatch
&#39;来自Stata。
任何建议都将不胜感激!
答案 0 :(得分:3)
如果您还没有这样做,那么通过help datetime
中的指导工作将会对您有所帮助,毫无疑问,这是我系统中访问量最大的文档,其中访问次数最多的是可以从Stata帮助菜单上的PDF文档项目中获取 Stata用户指南 PDF的第24章(使用日期和时间)。在处理日期和时间之前,任何Stata用户都应该仔细阅读详细的第24章。在那之后,帮助文档通常足以指明方向。有些人可能能够记住一切而不必不断地参考文档,但我不是一个人。
话虽如此,您的new_time
变量应该创建为double
generate double new_time = clock(intotheatre, "DMY hms",2050)
正如所引用的文件和Nick Cox所建议的那样。您现在将new_time
表示为自1960年1月1日以来的毫秒数。然后将影院时间从几分钟转换为毫秒并添加
generate double end_time = new_time + ( th_time * 60 * 1000 )
format end_time %tc
应该给你你想要的东西。