Statalist


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

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


From   "Lachenbruch, Peter" <[email protected]>
To   <[email protected]>
Subject   st: RE: RE: efficiently creating 1/0 variables from existing string y/n variables
Date   Mon, 28 Sep 2009 10:43:00 -0700

Would you want to include an if `var'~="" in the encode statement?  You
still don't have 0 or 1.

Tony

Peter A. Lachenbruch
Department of Public Health
Oregon State University
Corvallis, OR 97330
Phone: 541-737-3832
FAX: 541-737-4001


-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Martin Weiss
Sent: Sunday, September 27, 2009 3:45 PM
To: [email protected]
Subject: st: RE: efficiently creating 1/0 variables from existing string
y/n variables


<>

-replace-ing these variables with numeric counterparts would require you
to
change the -type- from string to numeric as well. I think the best way
to do
this for many variables is to employ a loop over them, and have the old
ones
-drop-ped automatically...


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

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

clonevar alc_now1=alc_now
clonevar alc_now2=alc_now
clonevar alc_now3=alc_now

qui ds, has(type string)

foreach var in `r(varlist)'{
		encode `var', gen(`var'_new)
		drop `var'
}

list, noobs
**************


HTH
Martin


-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Michael
McCulloch
Sent: Montag, 28. September 2009 00:25
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
[email protected]






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

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