[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: is this a missing value issue? (-if- command used)

From   Andrea Bennett <>
Subject   Re: st: is this a missing value issue? (-if- command used)
Date   Mon, 21 Jul 2008 15:45:31 +0200

Many thanks for the inputs!

So, how can I drop a variable such as I have described (containing lots of missing values but otherwise values from 0-1) when the value of this variable is below a certain threshold, e.g. 0.1? As asked before (my previous thread) I cannot use -drop X if Y==Z- because I don't want to drop observations but a variable when some condition is met.

Many thanks if someone got this done somehow and can share the knowledge,


On Jul 21, 2008, at 3:22 PM, Johannes Geyer wrote:

Hey Andrea,

I guess this is a FAQ:

"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 schrieb am 21/07/2008 15:05:02:


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,

* For searches and help try:
*   For searches and help try:
*   For searches and help try:

© Copyright 1996–2017 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index