Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# Re: st: if vx==1 (replace v1=1 if v1 is missing, otherwise replace v2=1 ... : how do i do this?

 From Nick Cox To statalist@hsphsun2.harvard.edu Subject Re: st: if vx==1 (replace v1=1 if v1 is missing, otherwise replace v2=1 ... : how do i do this? Date Wed, 25 May 2011 20:21:18 +0100

```I am not sure that you mean what you say by "otherwise". What is
definite is that

if vx == 1

as a command will be interpreted as

if vx[1] == 1

which is unlikely to be what you want. See

FAQ     . . . . . . . . . . . . . . . . . . . . .  if command vs. if qualifier
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  J. Wernow
6/00    I have an if command in my program that only seems
to evaluate the first observation, what's going on?
http://www.stata.com/support/faqs/lang/ifqualifier.html

for detailed explanation.

I am assuming that -vx- is not a scalar, but a variable.

It sounds as if you want statements like these:

replace v1 = 1 if missing(v1) & vx == 1

If you really want the "otherwise", you will need something like this

gen ismissv1 = missing(v1)
gen ismissv2 = missing(v2)
replace v1 = 1 if missing(v1) & vx == 1
replace v2 = 1 if missing(v2) & vx == 1 & !ismissv1
replace v3 = 1 if missing(v3) & vx == 1 & !ismissv1 & !ismissv2

Somehow I guess that you are after something more like this

replace v1 = 1 if missing(v1) & vx == 1
replace v2 = 1 if missing(v2) & vx == 1
replace v3 = 1 if missing(v3) & vx == 1

although you don't mention the missing(v3).

Nick

On Wed, May 25, 2011 at 7:57 PM, Paul O'Brien <paul.obrien@afe2.org.uk> wrote:
> i cannot think how to do this in Stata:
>
> if vx==1 (replace v1=1 if v1 is missing, otherwise replace v2=1 if v2 is missing, otherwise replace v3=1).
>