如何将导入的日期变量转换为Stata中的原始格式?

问题描述:

我的原始日期变量是这样的19jun2015 16:52:04。导入后,它看起来像这样:1.77065e+12如何将导入的日期变量转换为Stata中的原始格式?

新引进的变量的存储类型为str11和显示格式是%11s

我不知道我可以把它恢复回日期格式?

+3

你会希望按照'帮助日期时间'中的指导,将字符串变量转换为SIF日期时间变量,这无疑是我系统中访问量最大的文档,第二访问次数最多“Stata用户指南”的第24章(处理日期和时间)PDF可从Stata“帮助”菜单上的PDF文档项获得。在使用日期和时间之前,任何Stata用户都应该仔细阅读非常详细的第24章。之后,帮助日期时间文档通常足以指明方向。 – 2016-08-25 03:01:56

William Lisowski在他的评论中给出了很好的建议。对于任何在Stata中使用日期时间的人来说,只有最低程度的理解,否则混淆和彻底的错误是不可避免的。只有研究help以便您了解您的具体需求才能解决您的难题。

问题中缺乏细节,使得精确的建议非常困难(从哪种文件导入 - 使用哪些命令和/或第三方程序?),除非诊断您的日期已经搞乱并且只能通过回到原始来源来纠正。

日期字符串,如"19jun2015 16:52:04"可以在Stata举行为字符串,但是要他们需要被转换成其持有的毫秒数自1960年今年年初double数字变量是一个数字,人们无法解释有用的,但Stata提供显示格式,以便显示的日期可以理解。

你的例子是当转换为一兆的数量的数量,但如果作为一个字符串保存,只有6位有效数字,至少失去了详细的细节。

这些个别的例子使我的观点具体。 didisplay命令的缩写。

clock()(还有Clock(),未在此处显示或讨论:请参阅help)将字符串日期转换为自Stata起源以来的毫秒。有了一个变量,你可以使用generate double

. di %23.0f clock("19jun2015 16:52:04", "DMY hms") 
      1750351924000 

如果以特定的格式显示出来,你可以检查Stata的正确解释您的日期时间。默认的%tc格式也有很多小的变化来控制日期时间元素的精确显示。

. di %tc clock("19jun2015 16:52:04", "DMY hms") 
19jun2015 16:52:04 

第一个例子显示,即使日期时间,这是最近的日期(〜2016),并在整数秒需要10个显著数字是准确;默认显示为4;不知何故,你有6,但这还不够。

. di clock("19jun2015 16:52:04", "DMY hms") 
1.750e+12 

您需要再次导入日期。如果您完全按照图示导入它们,其余部分可以在Stata中完成。

请参阅https://en.wikipedia.org/wiki/Significant_figures如果该短语不熟悉。