In trying to clean up my code, I've run into a roadblock. I'm trying to create a dummy variable based on two conditions in a loop in a neater way.
Below is how I originally coded it:
Code:
drop _all
clear all
set obs 179
egen regid = seq(), to(30)
egen month = seq(), from(540) to(719)
#delimit ;
forvalues i=1(1)10{ ;
gen es`i' = 0 ;
replace es`i' = 1 if
fbtdate == (`i' -9) ®id == 1 | fbtdate == (`i' -9) ®id == 2 |
fbtdate == (`i' -9) ®id == 3 | fbtdate == (`i' -9) ®id == 4 |
fbtdate == (`i' -9) ®id == 5 | fbtdate == (`i' -9) ®id == 6 |
fbtdate == (`i' -9) ®id == 7 | fbtdate == (`i' -9) ®id == 8 |
fbtdate == (`i' -9) ®id == 9 | fbtdate == (`i' -9) ®id == 10 |
fbtdate == (`i' -9) ®id == 11 | fbtdate == (`i' -9) ®id == 12 |
fbtdate == (`i' -9) ®id == 13 | fbtdate == (`i' -9) ®id == 17 |
fbtdate == (`i' -9) ®id == 18 | fbtdate == (`i' -9) ®id == 19 |
fbtdate == (`i' -9) ®id == 23 | fbtdate == (`i' -9) ®id == 24 |
fbtdate == (`i' -9) ®id == 25 | fbtdate == (`i' -9) ®id == 26 |
fbtdate == (`i' -9) ®id == 27 | fbtdate == (`i' -9) ®id == 28 ;
};In trying to clean it up, I've coded it this way:
Code:
drop _all
clear all
set obs 179
egen regid = seq(), to(30)
egen month = seq(), from(540) to(719)
#delimit ;
gen fbtdate = month - ym(2016, 07) + 1;
forvalues i=1(1)10{ ;
gen es`i' = 0 ;
replace es`i' = 1 if fbtdate == (`i' -9)
& regid == inlist(1, 2, 3);
};Thank you
0 Response to Using inlist when with multiple & and or ( | ) statements to create dummies within a loop
Post a Comment