I have a date variable in Stata which is stored as a double
which looks like this:
Date
07dec2012
08jan2018
.
.
.
The display format is: %td
. I would like to convert this variable into a long
format so that I can use it for a fixed effects analysis. Is there an easy way of doing so?
CodePudding user response:
long
is a variable or storage type, not a (display) format.
Daily dates that arise in most practice can be stored as int
variables, so compress
will achieve that.
. 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
I wasn't aware that being double
would be a problem for what you want to do, and I can't see why long
should be preferred over int
.
EDIT The reported range of dates can be tested too
. 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)