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

# Re: st: Generating a binary variable

 From Phil Schumm 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/
```