Bookmark and Share

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


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

st: RE: AW: RE: AW: AW: recoding a variable


From   "Nick Cox" <[email protected]>
To   <[email protected]>
Subject   st: RE: AW: RE: AW: AW: recoding a variable
Date   Thu, 18 Feb 2010 14:11:05 -0000

Quite. It is important to underline that the solutions differ. 

Nick 
[email protected] 

Martin Weiss

" Another way to do it"

Though this represents a different take on the problem, one which leads
to a
mapping of missings in the var to newvar, while mine set newvar to zero
in
these cases:

clear
set obs 10000
 
gen var=runiform()

replace var=. in 5/8

gen byte newvar=var>.5 & !mi(var)

gen byte newvar2 = cond(missing(var), . , var > .5)

l in 1/10, noo

Nick Cox

Another way to do it 

gen byte newvar = cond(missing(var), . , var > .5) 

Martin Weiss

As always with the "greater than" operator in Stata, special care should
be
taken with regard to missings. So my expanded advice for you would be to
explicitly account for them:

clear
set obs 10000
 
gen var=runiform()
su var

//introduce missings
replace var=. in 5/8
ins var

//explicity deal with missings
gen byte newvar=var>.5 & !mi(var)
ta newvar, mis

l in 1/10, noo

Martin Weiss

replace var=var>.5

Data Analytics Corp. (Walter R. Paczkowski, Ph.D.) 

I got some very good quick advice on a looping question I asked 
earlier.  I have another question.  Suppose I have a variable with 
values that range between 0 ands 1.  I simply want to recode this so 
that any value greater than 0.5 becomes a 1, and 0 otherwise.  How do I 
do this?

*
*   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–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index