bysort D: <stata command>
This construct in Stata often solves problems that other programs require
looping structures to address.
As an aside, -inspect- is not a good choice for finding the number of
unique values of a variable. It only reports up to 99 unique values, after
which r(N_unique) is set to missing. -tabulate- is theoretically good for
up to 3000 unique values [see r(r) after a -return list- ]. There was a
thread on the list some time ago about what to do when the number of unique
values was greater than 3000; the archives would have this. I suspect some
looping would be involved.
Phil
At 05:32 PM 6/09/2002 -0700, you wrote:
Hi all !
I am trying to loop through all unique values of a variable.
For example if the data set contains 9 observations and the variable of
interest is D which takes the values 0 0 0 2 2 2 4 4 4
I would like to loop through the unique values 0 2 4 .
Below is a terrible "fix" which makes the additional assumption that the
unique values are evenly spaced. ( I prefer not to make that assumption).
It basically extracts the number of unique values from *inspect*, finds
the minimum value through *summarize* and then constructs the loop from
scratch .
quietly inspect D
local nu=r(N_unique)
quietly sum D
local dmin = r(min)
local last = `nu' * `dmin'
forvalues d= `dmin'(`dmin') `last' {
...
}
Is there a better way to do that in stata or is that just not what stata
was built for ?
Thanks for any suggestions ,
Matt
--
Matt Schonlau
310-393-0411 x7682
http://www.rand.org/methodology/stat/members/matt/
*
* 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/
Philip Ryan
Associate Professor and Head,
Department of Public Health
Medical School
University of Adelaide
Adelaide 5005
South Australia
tel: +61 8 83033570
fax: +61 8 82234075
[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/