[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

From |
carmen gamarra <carmengamarra@hotmail.com> |

To |
<statalist@hsphsun2.harvard.edu> |

Subject |
RE: st: using the command substr in stata |

Date |
Wed, 30 Jul 2008 11:10:04 +0000 |

Dear Svend, Thanks for your time. It really seems that will work. > Subject: Re: st: using the command substr in stata > Date: Wed, 30 Jul 2008 09:44:37 +0200 > From: SJ@SOCI.AU.DK > To: statalist@hsphsun2.harvard.edu > > > Carmen wrote: > > I have a string variable called disease_ICD (oldvar) which has > the values of "International Statistical Classification of > Diseases and Related Health Problems - ICD 9 and ICD 10" > > I need to create a new variable disease_ICDgroup (newvar) > containing grouped values of disease_ICD (oldvar). The > equivalent in EPI INFO is: > > . Define newvar TEXTINPUT > > . IF(substring(oldvar,1,3)>="001"AND substring(oldvar,1,3)<"799"THEN > ASSIGN newvar ="1" END > > . IF(substring(oldvar,1,3)>="A00"AND substring(oldvar,1,3)<"U99"THEN > ASSIGN newvar ="1" END > > . IF(substring(oldvar,1,3)>="800"AND substring(oldvar,1,3)<"999"THEN > ASSIGN newvar ="2" END > > . IF(substring(oldvar,1,3)>="V00"AND substring(oldvar,1,3)<"Y99"THEN > ASSIGN newvar ="2" END > > Note: The first three characters from oldvar are the same > in all banks (more than 20 banks) which allowed me to create > ranges and commands that can be used in all banks. > > How do I do this in STATA? > > =============================================================== > > First, I would generate a help variable -old3- since this is used > repeatedly: > > generate str old3 = substr(oldvar,1,3) > > Next, it goes: > > generate str newvar = "" > replace newvar = "1" if old3>="001" & old3<"799" > replace newvar = "1" if old3>="A00" & old3<"U99" > replace newvar = "2" if old3>="800" & old3<"999" > replace newvar = "2" if old3>="V00" & old3<"Y99" > > I wonder, however, if you want -newvar- to be string; numaric > variables are handier: > > generate newvar = . > replace newvar = 1 if old3>="001" & old3<"799" > replace newvar = 1 if old3>="A00" & old3<"U99" > replace newvar = 2 if old3>="800" & old3<"999" > replace newvar = 2 if old3>="V00" & old3<"Y99" > > Note that you may use the relational operators> and < with > strings. The rule is that strings follow dictionary sequence; > however, all uppercase letters come before lowercase, numbers > come before letters, and spaces or blanks come before > anything else. So: > > " " < "12" < "2" < "A" < "AA" < "Z" < "a" > > You could have found information about the substr() function by: > > findit substring > > Hope this helps > Svend > __________________________________________ > > Svend Juul > Institut for Folkesundhed, Afdeling for Epidemiologi > (Institute of Public Health, Department of Epidemiology) > Vennelyst Boulevard 6 > DK-8000 Aarhus C, Denmark > Phone: +45 8942 6090 > Home: +45 8693 7796 > Email: sj@soci.au.dk > __________________________________________ > > * > * 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/ _________________________________________________________________ Use video conversation to talk face-to-face with Windows Live Messenger. http://www.windowslive.com/messenger/connect_your_way.html?ocid=TXT_TAGLM_WL_Refresh_messenger_video_072008 * * 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/

**References**:**Re: st: using the command substr in stata***From:*Svend Juul <SJ@SOCI.AU.DK>

- Prev by Date:
**st: Triprobit & mvprobit errors (trivariate probit model)** - Next by Date:
**st: I can not open bank in state.** - Previous by thread:
**Re: st: using the command substr in stata** - Next by thread:
**st: How can I do a weighted logit?** - Index(es):

© Copyright 1996–2015 StataCorp LP | Terms of use | Privacy | Contact us | What's new | Site index |