【问题标题】:Stata--Dates Conversion统计——日期转换
【发布时间】:2012-09-30 05:54:57
【问题描述】:

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

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

gen stata_date = date(xdate, "mdy")

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

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

有什么想法吗?

【问题讨论】:

  • 听起来更像是 Excel 问题而不是 Stata 问题。您是否在 Excel 文件中对日期进行硬编码?您应该将它们复制粘贴特殊作为值,以便在将 Excel 显示为电子表格时将其从 Excel 覆盖到数据的格式层中解放出来。

标签: date stata


【解决方案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)

【讨论】:

    猜你喜欢
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    相关资源
    最近更新 更多