代码之家  ›  专栏  ›  技术社区  ›  pdx

计算活动的结束时间

  •  0
  • pdx  · 技术社区  · 8 年前

    我有手术的开始时间( new_time )%tc格式,我也有手术的长度( th_time )以分钟为单位(例如140分钟),且未格式化。

    我想知道如何继续添加 th_时间 新时间(_T) 为了得到手术的结束时间。

    到目前为止,我是如何格式化变量的:

    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时都以“ type mismatch '来自Stata。

    任何建议都将不胜感激!

    1 回复  |  直到 8 年前
        1
  •  3
  •   user4690969 user4690969    8 年前

    如果您还没有这样做,那么您可以按照 help datetime ,这无疑是我的系统中访问量最大的文档,第二大访问量是 Stata用户指南 可从Stata的“帮助”菜单上的“PDF文档”项获得PDF。在处理日期和时间之前,任何Stata用户都应该彻底阅读非常详细的第24章。在那之后,帮助文档通常足以指出方向。有些人可能能够记住所有的东西,而不必不断地查阅文档,但我就不是这样的人。

    话说回来,你的 new_time 变量应创建为双精度

    generate double new_time = clock(intotheatre, "DMY hms",2050)
    

    正如引用的文件和Nick Cox建议的那样。你有 新时间(_T) 现在表示为自1960年1月1日以来的毫秒数。然后将剧院时间从分钟转换为毫秒,并添加

    generate double end_time = new_time + ( th_time * 60 * 1000 )
    format end_time %tc