Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
st: RE: RE: RE: changing date format
From
"Martin Weiss" <[email protected]>
To
<[email protected]>
Subject
st: RE: RE: RE: changing date format
Date
Sun, 5 Sep 2010 16:32:17 +0200
<>
Also, I did not want to distract from Michael`s solution, just upend the
notion that you need external software. In other respects my solution,
compressed or not, is a rather cumbersome way to think about Mike`s problem.
HTH
Martin
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Nick Cox
Sent: Sonntag, 5. September 2010 16:28
To: '[email protected]'
Subject: st: RE: RE: changing date format
Michael and Martin are clearly both correct.
Mike was specifying "DMY" whereas his dates were "MDY". If we spell out what
his choice means, "2010102", for example, means month 20, etc., which Stata
can make sense of; so it returns missing.
Martin's syntax can be compressed, arguably at the expense of some
readability,
gen date = mdy(
real(substr(tradedate,5,2)),
real(substr(tradedate,-2,.)),
real(substr(tradedate,1,4))
)
format date %td
Nick
[email protected]
Martin Weiss
============
"Is there any way I can change tradedate into Stata date format without
using Excel?"
Even if you disregarded Michael`s advice and wanted to stick to your
splitting strategy, there is no need for external software:
***********
clear*
inp str8 tradedate
20010102
20010103
20010104
20010105
20010106
20010107
end
gen day=substr(tradedate,-2,.)
gen month=substr(tradedate,5,2)
gen year=substr(tradedate,1,4)
destring day month year, replace
gen date=mdy(month,day,year)
format date %td
l
***********
Michael N. Mitchell
===================
You were so close to having it right... here is how you can do this...
clear
input str8 tradedate
20010102
20010103
20010104
20010105
20010106
20010107
end
. generate date = date(tradedate, "YMD") . format date %td . list
+----------------------+
| traded~e date |
|----------------------|
1. | 20010102 02jan2001 |
2. | 20010103 03jan2001 |
3. | 20010104 04jan2001 |
4. | 20010105 05jan2001 |
5. | 20010106 06jan2001 |
|----------------------|
6. | 20010107 07jan2001 |
+----------------------+
Mike Kim
========
I imported daily stock data from CRSP. The data shows date like this:
tradedate
20010102
20010103
20010104
20010105
20010106
20010107
......
Neither of the following commands works:
- format tradedate %td
- gen date=date(tradedate, "MDY")
I split tradedae into month, day, year in excel, imported into Stata, and
used the following command to combine them.
- gen date=mdy(month,day,year)
Is there any way I can change tradedate into Stata date format without using
Excel?
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/