Bookmark and Share

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: st: Generating a binary variable

From   Phil Schumm <>
Subject   Re: st: Generating a binary variable
Date   Fri, 2 Apr 2010 04:24:21 -0500

On Apr 1, 2010, at 10:54 PM, Nik Pineider wrote:
I'm having trouble getting this to generate. gen ecobuy = 1 if ecolbs > 0 & ecobuy = 0 if ecolbs = 0. What am I doing wrong here?

If ecolbs is nonnegative and never missing, then you can use

    assert 0 <= ecolbs & !mi(ecolbs)
    gen ecobuy = (0 < ecolbs)

where the first line simply verifies the assumption (for safety and readability). If, however, ecolbs has missing and/or negative values, then you need to decide what value(s) ecobuy should take in those cases. For example, your original code (suitably broken onto two lines, as suggested by others) would result in ecobuy == 1 if ecolbs is missing, and ecobuy == . if ecolbs is negative. You can achieve the same thing by modifying the line above with an -if- condition:

    gen ecobuy = (0 < ecolbs) if 0 <= ecolbs

Note that this is probably *not* what you want (since it will set ecobuy = 1 if ecolbs is missing). Instead, you probably want

    gen ecobuy = (0 < ecolbs) if 0 <= ecolbs & !mi(ecolbs)

which will set ecobuy to missing if ecolbs is negative or missing.

If any of this is unclear, you should read [U] 13 Functions and expressions (especially 13.1 and 13.2) and [U] 12.2.1 Missing values.

-- Phil

*   For searches and help try:

© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index