将日期变量从 double 转换为 long

Converting a date variable from double to long

我在 Stata 中有一个日期变量,它存储为 double,如下所示:

Date
07dec2012
08jan2018
    .
    . 
    .

显示格式为:%td。我想将此变量转换为 long 格式,以便我可以将其用于固定效应分析。有简单的方法吗?

long是变量或存储类型,不是(显示)格式。

大多数实践中出现的每日日期可以存储为 int 变量,因此 compress 将实现这一点。

. clear

. set obs 1
Number of observations (_N) was 0, now 1.

. gen double date = mdy(1, 8, 2018)

. compress
  variable date was double now int

我不知道 double 对你想做的事来说是个问题,我不明白为什么 longint 更受欢迎。

编辑报告的日期范围也可以测试

. clear

. set obs 2
Number of observations (_N) was 0, now 2.

. gen double Date = cond(_n==1, -19903, 22280)



. format Date %td

. l

     +-----------+
     |      Date |
     |-----------|
  1. | 05jul1905 |
  2. | 31dec2020 |
     +-----------+

. compress Date
  variable Date was double now int
  (12 bytes saved)