Stata - 日期转换

时间:2012-09-30 05:54:57

标签: date stata

我在CSV中有日期,这是我第一次遇到这个问题,将日期从CSV转换为Stata时,我得到了缺失值。我通常使用:

我有一个来自Excel的变量'xdate'

gen stata_date = date(xdate,“mdy”)

这通常有效,但是对于这个数据集,我得到了所有缺失的值。

在Excel中,格式类别为日期,类型为* 3/14/2001。奇怪的是,当我将格式更改为自定义mm / dd / yyyy时(当我转到自定义时它现在是m / d / yyyy)然后重新运行我的.DO日期转换完美,但是当我重新启动Stata并运行时。如果没有这个手动更改,我会得到所有缺失值。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

已添加:2012-10-13 - 另一位Stata用户指出" mdy"在date()函数中应该是" MDY"。

如果修复此错误无法解决问题,请检查CSV文件以找出您正在为Stata提供的内容:

clear
set obs 1
gen xdate = "3/14/2001"

split xdate, p("/")

•如果除了" /&#34之外还有任何非数字字符,-split-会抱怨在字符串日期。为了了解它们是什么,我推荐Nick Cox' s -charlist-命令(来自SSC)。

•xdate1,xdate2和xdate3应为月,日和年。您可以使用-tab-和-codebook-检查它们。修复任何错误后,创建日期的简单方法是:

gen xmonth = real(xdate1)
gen xday = real(xdate2)
gen xyear = real(xdate3)
gen newdate=mdy(xmonth,xday,xyear)