*! version 1.1.0 05/01/93 STB-13: dm12.1 program define anyproc version 3.0 if "`2'"=="" { error 198 } local nv "`1'" mac shift local cmd "`*'" local range=0 parse "`cmd'", parse(" ,") local comma = index("`*'",",") if (`comma') { if (`comma'==1) { error 198 } local codes=substr("`*'",1,`comma'-1) parse "`codes'", parse(" ") if ("`2'"=="" | "`3'"!="") { error 198 } local range=1 local mincode "`1'" local maxcode "`2'" cap conf n `mincode' local rc = _rc cap conf n `maxcode' local rc = `rc' | _rc if (`rc') { error 108 } } confirm new variable `nv' tempvar v tempvar n quietly { gen double `n' = . gen byte `v'=0 local j 1 while 1 { capture confirm var proc`j' if _rc { rename `v' `nv' exit } confirm string var proc`j' if (`range') { replace `n' = real(trim(proc`j')) replace `v' = `v' | (`n'!=. & `n'>=`mincode' & `n'<=`maxcode') } else { local i 1 while "``i''"!="" { replace `v'=1 if trim(proc`j')=="``i''" local i=`i'+1 } } local j=`j'+1 } /*NOTREACHED*/ } end