*Stata programming by Example *Tutorial 4 **Looking at the if statement *--------------Start Example 1 ----------------* sysuse auto, clear forvalues i=1/22 { if `i'<5 { display as text "`i' is a number less than 5" } } *--------------End Example----------------------* *--------------Start Example 2 ----------------* sysuse auto, clear forvalues i=1/22 { if `i'<5 { display "`i' is a number less than 5" } else { display "`i' is a number equal to or greater than 5" } } *--------------End Example----------------------* *--------------Start Example 3 ----------------* sysuse auto, clear forvalues i=1/22 { if `i'<5 { display "`i' is a number less than 5" } else if `i'==5{ display "`i' is a number equal to 5" } else { display "`i' is a number less than or greater than 5" } } *--------------End Example----------------------* *The following will probably produce a result that you do not expect! *--------------Start Example 4 ----------------* sysuse auto, clear if mpg==25 { display "mgp equals 25" } tab mpg *--------------End Example----------------------* *the table indicates that there are 5 cases where mpg equals 25 *However, none are indicated as the if statement only looks at the *first observation *If you wanted to look at every observation *--------------Start Example 5 ----------------* sysuse auto, clear forvalues i=1/`=_N' { if mpg[`i']==25 { display "mgp equals 25" } } tab mpg *--------------End Example----------------------* *If you wanted to look at every observation *--------------Start Example 6 ----------------* local a=1 sysuse auto, clear forvalues i=1/`=_N' { if mpg[`i']==25 { display "mgp equals 25 case `a' " local a=`a'+1 } } tab mpg *--------------End Example----------------------* *End tutorial 4 - programming Stata