Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Replace with missing value


From   Nick Cox <njcoxstata@gmail.com>
To   "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu>
Subject   Re: st: Replace with missing value
Date   Fri, 12 Apr 2013 14:31:09 +0100

To convert

integer dates such as 20011201 in a variable -ndate-

to

Stata daily dates in a variable -sdate-

you need something like

gen sdate =  date(string(ndate, "%12.0f"), "YMD")
format sdate %td

Then years are just

gen year = year(sdate)

Nick
njcoxstata@gmail.com

On 12 April 2013 14:18, André Gyllenram <a_gyllenram@hotmail.com> wrote:
> Thank you for your help! This worked!
>
> Regards
> André
>
>
> ----------------------------------------
>> Date: Fri, 12 Apr 2013 13:44:15 +0100
>> Subject: Re: st: Replace with missing value
>> From: njcoxstata@gmail.com
>> To: statalist@hsphsun2.harvard.edu
>>
>> I thought your original question was clear; you just asked a different
>> question.
>>
>> Before getting to an answer, I recommend _strongly_ against holding
>> daily dates as integers such as 20000101. This causes at least two
>> problems: you need to worry about precision and you get hiatuses in
>> the data such as that between 20001231 and 20010101. This will bite
>> you, hard, sooner or later, so I recommend that you convert to Stata
>> daily dates. Then use date functions such as -year()- to work with
>> years.
>>
>> I'll rephrase what appears to be your basic question. You are, or
>> should be, calculating variances
>>
>> by <id> <year> : egen var = var(<response>)
>>
>> but you want to overwrite variances with missing if any values
>> considered are missing. That could be
>>
>> by <id> <year> : egen nmissing = total(missing(<response>))
>>
>> replace var = . if nmissing
>>
>> Nick
>> njcoxstata@gmail.com
>>
>>
>> On 12 April 2013 13:10, André Gyllenram <a_gyllenram@hotmail.com> wrote:
>>
>> > Thank you for your answer. But i realized that i was not very clear in my first post. Sorry about that.
>> >
>> > What i want to do is that i want to compute the variance for different periods and stocks. The problem I have is that stata does not consider missing values when computing the variance.
>> >
>> > If i write the code:
>> >
>> > by isin: egen variance20001230=var(price) if datum>=20000101 & datum< 2000123
>> > 0
>> >
>> > this gives me the 1-year variance for every stock between 200010101 and 20001230. However it does not consider missing values. If i have any missing values in the price -data for any stock in the time period 20000101-20001230 i want to set the variace for that stock equal to missing.
>> >
>> > Maybe this problem is easier to solve?

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index