Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: RE: a tabulate question. [sequel]


From   "Nick Cox" <[email protected]>
To   <[email protected]>
Subject   st: RE: RE: a tabulate question. [sequel]
Date   Wed, 15 Oct 2003 15:44:35 +0100

> [email protected]
> > 
> > Yesterday night, I encounter this problem. I have the 
> > following table:
> > 
> > . ta senum rich3
> > 
> > Enumeratio |              rich3
> >     n Area |         1          2          3 |     Total
> > -----------+---------------------------------+----------
> >          1 |        45         31         26 |       102
> >          2 |        13         10          6 |        29
> >          3 |        40         18          4 |        62
> >          5 |        11         13         20 |        44
> >       2171 |         0         10          1 |        11
> >       2455 |         0          0         11 |        11
> >       2920 |         0         11          0 |        11
> >       3052 |         0          1         10 |        11
> >       4163 |         0          9          3 |        12
> > -----------+---------------------------------+----------
> >      Total |      2091       2085        931 |      5107
> > 
>  
> > I  am interessed in the first column (very poor). I want to 
> > compute the ratios
> > of poor in the psu
> > (for example for the first line: (45 /102 )*100 , for the 
> > second line: (13 /29)
> > *100, etc...)
> > and group the PSUs into 3 categories: 40% of poor,  60% of 
> > poor and more than
> > 80% of poor.
> > 
> > I use the command:
> > tab senum rich3, matcell(mat_1)
> > 
> > to retrive the matrix but I don't know how to retrive the vector.
> > 
> > I just copy the table into Excel to compute my ratios.
> > 
> > Is there any way to proceed in stata?
> 
> If you proceed this way, you end up having 
> to do an elementwise division of vectors; 
> that's possible (-search matewd-) but awkward; and then 
> you have to map your results back onto the dataset. 
> 
> Here is another way: 
> 
> egen vpoor = sum(100 * (rich3 == 1)/_N), by(senum) 
> 
> Watch out, however, for missings. 

This may be more transparent. It 
is also better if there are missings. 

egen num = sum(rich3 == 1), by(senum) 
egen den = sum(rich3 < .), by(senum) 
gen vpoor = 100 * num / den 

Nick 
[email protected] 
*
*   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/



© Copyright 1996–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index