Bookmark and Share

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: Dividing data into quintiles


From   Clarice Martins <[email protected]>
To   [email protected]
Subject   Re: st: RE: Dividing data into quintiles
Date   Mon, 28 Oct 2013 20:09:08 -0200

Dear Nick,

I do not see the problem with:

> I would not create a new temporary variable each
> time round the loop.

if i do need to know these quintiles for further calculation, wouldn't it be good to have this temporary variable with signals for me each quintile? What am I missing?

> The -replace- should be restricted to the
> observations it was calculated for;

this one honestly, i didn't understand what it does... 


Thanks!!!



On Oct 28, 2013, at 7:49 PM, Nick Cox wrote:

> Here is a tweak of David's code. I have not tested this, but I can see
> two problems with his code. The -replace- should be restricted to the
> observations it was calculated for; otherwise you overwrite good
> values with missings. I would not create a new temporary variable each
> time round the loop.
> 
> gen quintile = .
> quietly levelsof yrmonth, local(levs)
> 
> quietly foreach lev of local levs {
>         xtile work = return if rtype=="formation" & yrmonth == "`lev'", n(5)
>         replace quintile = work if rtype=="formation" & yrmonth == "`lev'"
>         drop work
> }
>> 
> Nick
> [email protected]
> 
> 
> On 28 October 2013 21:33, Clarice Martins <[email protected]> wrote:
>> Hello David, hello all!!
>> 
>> I believe you understood correctly!  Thank you for your suggestion!
>> 
>> But forgive me, if I am totally off, I am very new with Stata: I think I understood your code, but after creating the variable quintile, this one was kept empty. Should I see values recorded on that? Or the results of the code are stored virtually?   (sorry! very basic question!)
>> 
>> In my research, the next step will use returns for the companies in the 1st and 5th quintile of each  -rtype=="formation" & yrmonth == "`lev'"-  for calculations, so I do need to have available these quintiles (specifically 1st and 5th) for next step.
>> 
>> Thank you!!
>> Clarice
>> 
>> 
>> 
>> On Oct 28, 2013, at 4:58 PM, Radwin, David wrote:
>> 
>>> Clarice,
>>> 
>>> If I understand correctly, you merely need to loop through each value of yrmonth and calculate quintiles for observations with that value for yrmonth. But you can't generate a new variable 151 times.
>>> 
>>> So you could do something this that creates quintiles for a temporary variable:
>>> 
>>> gen quintile = .
>>> quietly levelsof yrmonth, local(levs)
>>> foreach lev of local levs {
>>>      tempvar quint
>>>      xtile `quint' = return if rtype=="formation" & yrmonth == "`lev'", n(5)
>>>      replace quintile = `quint'
>>>      }
>>> 
>>> 
>>> David
>>> --
>>> David Radwin
>>> Senior Research Associate
>>> Education and Workforce Development Division
>>> RTI International
>>> 2150 Shattuck Ave., Suite 800
>>> Berkeley, CA 94704
>>> Phone: 510-665-8274
>>> 
>>> www.rti.org
>>> 
>>> 
>>>> -----Original Message-----
>>>> From: [email protected] [mailto:owner-
>>>> [email protected]] On Behalf Of Clarice Martins
>>>> Sent: Monday, October 28, 2013 11:39 AM
>>>> To: [email protected]
>>>> Subject: st: Dividing data into quintiles
>>>> 
>>>> Dear group,
>>>> 
>>>> I need to select a sub-group of my dataset and cut it into quintiles, in
>>>> order to proceed with calculations with top and bottom quintile.
>>>> 
>>>> - I use Stata 12.1 (for Mac)
>>>> 
>>>> - my data looks like this (now, after considerations from the group, thank
>>>> you!)
>>>> 
>>>> co_id ticker rtype   yrmonth return
>>>> 1 ABCB formation jun2000 0.01
>>>> 1 ABCB buysell jul2000 0.01
>>>> 1 ABCB holding ago2000 0.01
>>>> 2 AEDU formation jun2000 0.01
>>>> 2 AEDU buysell jul2000 0.01
>>>> 2 AEDU holding ago2000 0.01
>>>> 3 AMBV formation jun2000 0.01
>>>> 3 AMBV buysell jul2000 0.01
>>>> 3 AMBV holding ago2000 0.01
>>>> 
>>>> - i tryed both -egen cut- and -xtile-
>>>> 
>>>> egen quintile = cut(return) if rtype=="formation", group(5)
>>>> 
>>>> xtile quintile=return if rtype=="formation", n(5)
>>>> 
>>>> - when I use -if rtype=="formation"- both commands work fine!
>>>> 
>>>> - But, I need to select all observations rtype=="formation"  AND
>>>> yrmonth=="jun2000", then cut this subgroup into quintiles
>>>> 
>>>> - Then, I need to proceed with this filter/select and cut, for every
>>>> yrmonth (151 periods) on my data set
>>>> 
>>>> Any suggestions?
>>>> 
>>>> Thank you very much!
>>>> 
>>>> Clarice
>>> 
>>> 
>>> *
>>> *   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/
>> 
>> 
>> *
>> *   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/
> 
> *
> *   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/


*
*   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–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index