Hey Andrea,
I guess this is a FAQ:
http://www.stata.com/support/faqs/lang/ifqualifier.html
"if" works like "while" in your example, i.e. in case you have -`var'==.- 
and "missing" is
a very large number the if-statement does not evaluate to "true" and does 
not execute -drop `var'-. It 
starts evaluating your data with the first observation. If the statement 
is "false", Stata proceeds executing code after the if-statement.
Hope this helps,
Johannes
[email protected] schrieb am 21/07/2008 15:05:02:
> Hi!
> 
> I have the following code in my do-file:
> 
> qui lookfor zt
> qui foreach var of varlist `r(varlist)' {
>    if `var'<=.1  {
>       drop `var' 
>    }
> }
> 
> All my zt* variables are percentages of missing values of the original 
> variables, e.g. zt_age_2000==0.04 means that 0.04 percent of the 
> variable age in year 2000 are missing. The way I generated the zt- 
> variables, they contain Stata missing values for all years except the 
> corresponding year, e.g. in the above case the zt_age_2000 variable 
> contains missing values for all years smaller and greater than 2000 
> while for the year 2000 it shows the percentage missing.
> 
> Now with the above query I want to get rid of zt-variable if their 
> missing percentage is below the threshold of 0.1. Strangely, when I 
> use the above commands, it does not perform what I want. However, when 
> I first recode each zt-variable and set the missing values to zero, 
> then the if-query works fine.
> 
> So, what am I doing wrong when using the if-command?
> 
> Many thanks for your considerations,
> 
> Andrea 
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/