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]
RE: st: RE: changing observations under one variable
From
Nick Cox <[email protected]>
To
"'[email protected]'" <[email protected]>
Subject
RE: st: RE: changing observations under one variable
Date
Tue, 24 Apr 2012 19:35:42 +0100
There is help on dates, date formats and date functions in abundance. At some point it becomes inefficient not to read it.
I tend to type things like
. di %tm 468
1999m1
which tells me that as a monthly date 468 means January 1999. As explained in the documentation, Stata always uses the first possible date in 1960 as 0. That also can be checked
. di %tm 0
1960m1
Also, Stata won't know that 199901 means a date that is in January 1999 if you present that to Stata as a daily date, as you did. You need to convert such dates. For example,
. di %td date("199901" + "1", "YMD")
01jan1999
or
. di %tm ym(1999, 1)
1999m1
Steve Samuels and I just published a relevant Tip with various specific advice, so I won't expand further.
SJ-12-1 dm0062 . . . . . . . . . Stata tip 105: Daily dates with missing days
. . . . . . . . . . . . . . . . . . . . . S. J. Samuels and N. J. Cox
Q1/12 SJ 12(1):159--161 (no commands)
presents strategies for dealing with daily dates where
some observations only provide the month and year
Nick
[email protected]
Rudy Hover
Thank you Nick.
The reason I want to change the data is that I need to merge it with a dataset that contains the dates in the '199901' format.
Because of that just displaying the data in another way won't help me out in the end.
I used your tip to generate a variable that is just year and month
gen monthdate=mofd(date)
So now for instance 29jan1999 becomes 468 (do you know why 468?)
However if the underlying cell is in the format '199901' then the operator
gen monthdate=mofd(date)
creates a value for 199901 that equals 6567.
So then I have a mismatch, since both 29jan1999 and 199901 should be be replaced/used to create the same (new) value.
How can I let stata perform this?
On Apr 24, 2012, at 3:39 PM, Nick Cox wrote:
> You can apply a different -format- to get a display of just year and month.
>
> . di %tdCCyyNN mdy(4,24,2012)
> 201204
>
> You can get a date variable that is just year and month by using -mofd()- as in
>
> gen monthdate = mofd(date)
>
> . di %tm mofd(mdy(4,24,2012))
> 2012m4
>
> This is all documented.
Rudy Hover
> The variable 'date' has type -long-.
>
> The format is -%d-
>
> The label is -Date of Observation-
On Apr 24, 2012, at 2:08 PM, Nick Cox wrote:
>> The word format means so many things! "29jan1999" is not a format in the sense of -format-. It might the result of setting a particular format?
>>
>> Is -date- a string variable? Is it a numeric variable with a date format assigned.
>>
>> Do you want another string variable? Do you want a numeric variable with a specified display -format-?
Rudy Hover
I have one variable called 'date' with observations in the format '29jan1999' until '19dec2006', so the last working day of the month, the month and then the year. I want to change this to the format '199901' or '200612', so I don't need the day anymore, only the year and then the month. Could you help me how to replace?
*
* 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/