Statalist


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

st: RE: efficiently creating 1/0 variables from existing string y/n variables


From   "Kieran McCaul" <Kieran.McCaul@uwa.edu.au>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: efficiently creating 1/0 variables from existing string y/n variables
Date   Mon, 28 Sep 2009 06:43:29 +0800

...

Further to Martin's reply, if you have missing values in alc_now then
using 
	gen etoh_now=alc_now=="y"
will not give you what you want because anything that is not "y" will be
coded to zero.
With -encode-, three categories are created: 1 for missing, 2 for "n",
and 3 for "y".



**************
clear*

input  str1 alc_now   
"y"
"y"
"y"
"y"
" "
"y"
"n"
"y"
"y"
"y"
end

compress
list, noobs 

gen etoh_now1=alc_now=="y"
encode alc_now, gen(etoh_now2)
list, noobs nol
recode etoh_now2 1=. 2=0 3=1, gen(etoh_now)
list, noobs nol

**************



______________________________________________
Kieran McCaul MPH PhD
WA Centre for Health & Ageing (M573)
University of Western Australia
Level 6, Ainslie House
48 Murray St
Perth 6000
Phone: (08) 9224-2701
Fax: (08) 9224 8009
email: Kieran.McCaul@uwa.edu.au
http://myprofile.cos.com/mccaul 
http://www.researcherid.com/rid/B-8751-2008
______________________________________________
If you live to be one hundred, you've got it made.
Very few people die past that age - George Burns

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Michael
McCulloch
Sent: Monday, 28 September 2009 6:25 AM
To: Statalist
Subject: st: efficiently creating 1/0 variables from existing string y/n
variables

Hello,
I have a long list of string variables which contain only "y", "n", or  
are missing.
I'm converting them to new numeric variables with values 1 if  the old  
variable is "y", and 0 if "n".
For example:
	gen etoh_now=alc_now=="y"

This gives, correctly:
.. list alc_now etoh_now, clean
        alc_now   etoh_now
   1.         y          1
   2.         y          1
   3.         y          1
   4.         y          1
   5.         y          1
   6.         y          1
   7.         n          0
   8.         y          1

Is there a more efficient way to do this, where I can change "y" to 1  
and "n" to 0 without creating a new variable and manually dropping the  
old variable?







Michael McCulloch, LAc MPH PhD
Pine Street Foundation
124 Pine Street
San Anselmo, CA 94960-2674
tel:	415-407-1357
fax: 	206-338-2391
mm@pinestreetfoundation.org






*
*   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/



*
*   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   |   What's new   |   Site index