1

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

我有一个来自 Excel 的变量“xdate”

gen stata_date = date(xdate, "mdy")

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

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

有任何想法吗?

4

1 回答 1

1

补充:2012-10-13——另一个Stata用户指出date()函数中的“mdy”应该是“MDY”。

如果修复此错误不能解决问题,请检查 CSV 文件以找出您提供给 Stata 的内容:

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

split xdate, p("/")

• -split- 如果字符串日期中有除“/”以外的任何非数字字符,将报错。要查看它们是什么,我推荐 Nick Cox 的 -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)
于 2012-10-10T00:04:12.013 回答