There was a post recently on the list as to the possibility of creating a
percent format
(http://www.stata.com/statalist/archive/2006-10/msg00208.html), but my
question is about time. Specifically, why Stata handles dates so elegantly
but time so abysmally. Once the format is set for a date variable, graphing
it produces output exactly as you would expect. Not so for time.
The data is in the format-
time datavar
100 ...
105 ...
155 ...
159 ...
207 ...
1450 ...
Where 100 is 1:00, 155 is 1:55, and 1450 is 2:50pm. In searching for
information on Stata and time, I found the s/ntimeofday functions. However,
I don't believe those help much in producing graphs, as the output is a
string (they are, however, useful for converting strings to numerical counts
of minutes, hours, etc.). So the question remains: why doesn't Stata handle
time in the way it handles dates?
My best kludge attempt follows. I am posting it in the hope that someone
will suggest improvements and/or find it useful, but surely a better
solution exists?
Thanks,
Ari
*----BEGIN CODE----*
// Extract minutes
tostring time, replace
gen min=substr(time,-2,2)
// Extract hours
destring time min, replace
gen hr = (time - min)/100
* Have to do it this way do to a failing of the substr command (can't
specify "all but last two characters")
// Now generate a time in minutes
gen time_min = 60*hr + min
drop min hr
// Now feed the time in minutes into the time function
stimeofday time_min, gen(timestr) string(hours minutes) numeric(minutes)
// Graph it
*twoway scatter datavar time_min, xlabel(60 "1:00" 120 "2:00" 180 "3:00" 240
"4:00" 300 "5:00" 360 "6:00" 420 "7:00" 480 "8:00" 540 "9:00" 600 "10:00"
660 "11:00" 720 "12:00" 780 "13:00" 840 "14:00" 900 "15:00" 960 "16:00" 1020
"17:00" 1080 "18:00" 1140 "19:00" 1200 "20:00" 1260 "21:00" 1320 "22:00"
1380 "23:00" 1440 "24:00")
twoway scatter datavar time_min, xlabel(60 "1:00" 240 "4:00" 420 "7:00" 600
"10:00" 780 "13:00" 960 "16:00" 1140 "19:00" 1320 "22:00") xtitle("Time of
Day")
*----END CODE----*
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/