program define dropmissing syntax varlist [, missing(string) delete] tokenize `varlist' local nbitems:word count `varlist' if "`missing'"=="" { local missing="." } local nbmissing:word count `missing' forvalues i=1/`nbitems' { forvalues j=1/`nbmissing' { local miss:word `j' of `missing' if "`delete'"!="" { drop if ``i''==`miss' } else { replace ``i'=. if ``i''==`miss' } } } end