Statalist


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

RE: st: Recode non-integers to positive integers


From   "Nick Cox" <[email protected]>
To   <[email protected]>
Subject   RE: st: Recode non-integers to positive integers
Date   Mon, 24 Aug 2009 17:10:20 +0100

One advantage of using 

egen newvar = group(oldvar) if oldvar != 0
replace newvar = 0 if newvar == .

is that it extends easily to assignment of value labels, e.g. 

egen newvar = group(oldvar) if oldvar != 0, label 
replace newvar = 0 if newvar == .

The subtracting 1 route extends only messily to having labels as well. 

As sooner or later you are likely to want to see labelled output, this
is a notable detail. 

Nick 
[email protected] 

Frank Gallo

Hi Nick & Tirthankar,

Thank you for the suggestions. Here is what I did, which solved my  
problem:

egen newvar = group(oldvar)
recode newvar (18=0)
replace newvar = newvar - 1

On Aug 23, 2009, at 12:05 PM, Nick Cox wrote:

Alternatively,

egen newvar = group(oldvar) if oldvar != 0
replace newvar = 0 if newvar == .

This exploits the fact the -egen, group()- never yields 0 as a result.

Tirthankar Chakravarty

Well, in your case (non-negative values) it is easy. Simply subtract 1
from the -group-ed variable:
*******************
sysuse auto, clear
tab mpg
recode mpg (18=0) // change 18 to 0
egen new = group(mpg)
replace new = new - 1
tab new
*******************

On Sat, Aug 22, 2009 at 4:24 PM, Frank Gallo<[email protected]> wrote:

> So the syntax "egen newvar = group(oldvar)" achieves my goal for one
> variable. But for another variable, I have "0" values that I want to  
> keep
> and do not include in the grouping. I tried adding the if qualifier  
> [egen
> newvar = group(oldvar) if oldvar > 0] but this transformed the 0s to
> missing. I would greatly appreciate any suggestions. Thank you.

*
*   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–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index