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

Re: Re: st: A small technique problem


From   "Maoyong Fan" <[email protected]>
To   "[email protected]" <[email protected]>
Subject   Re: Re: st: A small technique problem
Date   Fri, 11 Jun 2004 13:05:29 -0700

Thank you, Dan.  It works well.

Maoyong Fan

UCB 

>You were almost there with return macro var r(r).  This will
>evaluate to the number of categories of your tabulated variable.
>
>Just add that to your code:
>
>. local varlist_2 = "verbal_sat dum1-dum`r(r)'"
>
>. di "`varlist_2'"
>
>verbal_sat dum1-dum30
>
>Dan Blanchette
>Carolina Population Center UNC-CH
>
>>
>> Dear Statalist members,
>>
>> 	I met a small stata problem.  Does anyone have a good way to do it?
>>
>> 	Problem:
>>
>> The subprogram is like this:
>>
>> 	load big data set
>> 	select small data set
>> 	generate dum
>> 	show how many dum variables are generated
>> 	loop to operate on each dum
>>
>> In total, there are over fifty such small subprograms, every small data set is different from the other.
>>
>> I have to check how many dums are there in the subprogram and put the number into loop.  Everytime, I change the big dataset, I have to recheck the dum number and reinput the dum number into the loop.
>>
>> How can I let the stata do this automatically?
>>
>> Example of subprogram:
>>
>> use pdp_matching.dta, clear
>>
>> keep	gender coalition_pool verbal_sat math_sat c32_lecture	c32_times_taken	c32_year	c32_term	c32_num_grade	c32_math_98	c32_pdp_ids	c32_pdp_ids_not_pass	c32_slc_adjunct	c32_slc_adjunct_not_pass
>>
>> drop  if    gender  ==  .
>> drop  if    coalition_pool  ==  .
>> drop	if	verbal_sat	==	.
>> drop	if	math_sat	==	.
>> drop	if	c32_lecture	==	.
>> drop	if	c32_year	==	.
>> drop	if	c32_term	==	.
>> drop	if	c32_num_grade	==	.
>>
>> keep  if c32_num_grade < 5
>>
>> generate same_class = c32_year*100 + c32_term*10 + c32_lecture
>>
>> tabulate same_class, gen(dum)
>>
>> di r(r)
>>
>> local varlist_1 = "gender math_sat"
>> local varlist_2 = "verbal_sat dum1-dum30"
>>
>> Note:  I have to input 30 by myself before!!!  Can stata do this automatically?
>>
>> foreach var of local varlist_1 {
>> egen `var'_max = max(`var')
>> egen `var'_min = min(`var')
>> if `var'_max ~= `var'_min  {
>>
>> local varlist_2 = "`varlist_2' `var'"
>> di "keep `var'"
>> }
>> else {
>> display "drop `var'"
>>
>> }
>> }
>> display "Finish dropping"
>>
>>
>>
>> Warm regards,
>>
>> Maoyong Fan
>>
>>
>>
>>
>>
>>
>
>
>*
>*   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/

*
*   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