# st: A small technique problem

 From "Maoyong Fan" To "statalist" Subject st: A small technique problem Date Fri, 11 Jun 2004 12:35:17 -0700

```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/
```