我原来的日期变量就像这个19jun2015 16:52:04
。导入后,它看起来像这样:1.77065e+12
新导入变量的存储类型为str11
,显示格式为%11s
我想知道如何将其恢复为日期格式?
答案 0 :(得分:1)
help
以便了解您的特定需求可以解决您的困难。
问题中缺少细节,这使得精确的建议变得困难(导入 - 从哪种文件?使用哪些命令和/或第三方程序?),除了诊断你的日期搞砸了,可以只能通过返回原始来源进行纠正。
"19jun2015 16:52:04"
之类的日期字符串可以作为字符串保存在Stata中,但为了有用,它们需要转换为double
数字变量,这些变量保存自1960年初以来的毫秒数。这是人们无法解释的数字,但Stata提供显示格式,以便显示日期可理解。
你的例子是转换为万亿的数量但如果只保留为只有6个有效数字的字符串,至少会丢失无可挽回的细节。
这些个别例子使我的观点具体化。 di
是display
命令的缩写。
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。