*# var # Shortcut for a series of {cmd:gen} statements, using if/else-if logic # help *! 29aug2007 program genif version 8.2 tempvar hold set qui gen `hold'=. qui gen byte `set'=0 gettoken new 0: 0, parse("=") gettoken junk 0: 0,parse("=") while index(`"`0'"',"(") & index(`"`0'"',")") { gettoken one 0: 0, parse("(") match(junk) gettoken val cond: one, parse(",") if mi(`"`cond'"') local cond 01 else local cond= substr(`"`cond'"',2,.) if (substr(`"`cond'"',1,3)=="mi(" | substr(`"`cond'"',1,4)=="~mi(") { replace `hold'=`val' if (`cond') & ~`set' replace `set'=1 if (`cond') & ~`set' } else { replace `hold'=`val' if (`cond') & ~mi(`cond') & ~`set' replace `set'=1 if (`cond') & ~mi(`cond') & ~`set' } } qui gen `new'=`hold' qui compress `new' end