Stata using loop values sequentially -
Stata using loop values sequentially -
i want replace code loop:
replace var1=1 if year > 1996 & st==5 replace var1=0 if year < 1996 & st==5 replace var1=1 if year > 1998 & st==6 replace var1=0 if year < 1998 & st==6
my info looks
st year var 5 1993 5 1996 5 1992 6 1991 6 1999`
i wrote loop
foreach st in 5 6} foreach yr in 1996 1998 } replace var1=1 if year>`yr' & state==`st' replace var1=0 if year<`yr' & state==`st' } }
however loop not produce results similar manual method. know making stupid mistake.
edit:
to farther clarify actual code wrote (without using loops) looks below. utilize loop or other simpler method arrive @ same results:
gen policy=. replace policy=1 if year>1996 & fipscode==5 replace policy=0 if year <1997 & fipscode==5 replace policy=1 if year>1995 & fipscode==6 replace policy=0 if year <1996 & fipscode==6 replace policy=1 if year>1997 & fipscode==9 replace policy=0 if year <1998 & fipscode==9 replace policy=1 if year>1997 & fipscode==15 replace policy=0 if year <1998 & fipscode==15 replace policy=1 if year>1992 & fipscode==16 replace policy=0 if year <1993 & fipscode==16 replace policy=1 if year>1996 & fipscode==31 replace policy=0 if year <1997 & fipscode==31 replace policy=1 if year>1997 & fipscode==32 replace policy=0 if year <1998 & fipscode==32 replace policy=1 if year>1996 & fipscode==39 replace policy=0 if year <1997 & fipscode==39 replace policy=1 if year>1997 & fipscode==40 replace policy=0 if year <1998 & fipscode==40 replace policy=1 if year>1992 & fipscode==54 replace policy=0 if year <1993 & fipscode==54
try forvalues
(i think efficient compared foreach
)
forvalues st=5/6{ forvalues yr= 1996(2)1998{ replace var1=1 if year>`yr' & state==`st' replace var1=0 if year<`yr' & state==`st' } }
if want stick foreach
:
foreach st of numlist 5/6{ foreach yr of numlist 1996(2)1998{ replace var1=1 if year>`yr' & state==`st' replace var1=0 if year<`yr' & state==`st' } }
stata
Comments
Post a Comment