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/