clear sysuse auto generate price1 =price generate price2 =price ds, has(type numeric) local varlist1 "`r(varlist)'" local varlist1 : subinstr local varlist1 "price" "" *display "`varlist1'" local varlist2 "`varlist1'" foreach var of local varlist1 { // varlist1 cannot be altered inside this loop *display "`varlist2'" capture assert `var' == price if (_rc==0 & "`var'" ~= "price") { display "`var'" local varlist2 : subinstr local varlist2 "`var'" "" display "`varlist2'" drop `var' } }