Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down at the end of May, and its replacement, statalist.org is already up and running.


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

Re: st: Generating a binary variable


From   Phil Schumm <pschumm@uchicago.edu>
To   statalist@hsphsun2.harvard.edu
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:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index