Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: gen new variable from string variables


From   Morten Andersen <mandersen@health.sdu.dk>
To   Statalist <statalist@hsphsun2.harvard.edu>
Subject   Re: st: gen new variable from string variables
Date   Thu, 28 Apr 2005 14:13:19 +0200

New variable from string variables:

I have written incode.ado to create and indicator variable from several
string variables and a hierarchical classification like the ICD.

It needs a few checks and some polishing before submitting to the SSC. If
you are interested to try out the ado please e-mail me privately.

Morten Andersen

----------------------------------------------------------------------------
Morten Andersen, MD, PhD               Research Unit for General Practice
Senior Researcher                      University of Southern Denmark
Phone   +45 6550 3791                  J.B. Winsloews Vej 9
Fax     +45 6311 1642                  DK-5000 Odense C
E-mail  mandersen@health.sdu.dk        Denmark
----------------------------------------------------------------------------

> From: Joseph Coveney <jcoveney@bigplanet.com>
> Reply-To: <statalist@hsphsun2.harvard.edu>
> Date: Tue, 26 Apr 2005 12:50:35 +0900
> To: Statalist <statalist@hsphsun2.harvard.edu>
> Subject: Re: st: gen new variable from string variables
> 
> Belinda L King wrote:
> 
> I am wanting to create a variable that tells me whether the patient has an
> ICD10 starting with E11. I am not interested in the numbers after the dots,
> nor am I interested in any of the other ICD10 codes and I am wanting to drop
> patients who do not have E11 in one of the ICD10 columns. I have tried
> playing with foreach, but this side of things is new for me and I just keep
> getting messages telling me the syntax is incorrect. I would greatly
> appreciate any hints someone could give me, thank you in advance.
> 
> ----------------------------------------------------------------------------
> 
> First, generate a flag (indicator) variable with the value set to zero as a
> default.  Then, use -index()- to find patients whose ICD10 codes contain
> "E11".  Set the flag to one if one or more ICD10 codes (variables) contain
> "E11".  Keep rows for those patients with the flag set, and then drop the
> flag.
> 
> The approach is illustrated below after the "Begin here" comment.  (The
> first part is just to enter your dataset.)
> 
> Joseph Coveney
> 
> clear
> tempfile tmpfil0
> input str200 v1
> "rec id icd10_1 icd10_2 icd10_3"
>  "1. 1 K61.3 Z86.43 F05.9"
>  "2. 2 B95.8 Z06.2 Z86.43"
>  "3. 3 E11.69 R40.2 E11.9"
>  "4. 4 Z86.43 Z95.8 E87.6"
>  "5. 5 K59.0 K59.0 Z93.1"
>  "6. 6 E11.65 E11.66 R63.4"
>  "7. 7 E11.22 E66.9 E11.23"
>  "8. 8 E11.9 E78.0 K63.50"
>  "9. 9 E78.0 E11.65 D50.9"
>  "10. 10 E11.65 K59.0 Z93.0"
> end
> replace v1 = subinstr(v1, " ", ", ", .)
> outsheet using `tmpfil0', nonames noquote
> insheet using `tmpfil0', names comma clear
> erase `tmpfil0'
> drop rec
> *
> * Begin here
> *
> generate byte has_E11 = 0
> forvalues i = 1/3 {
>    replace has_E11 = has_E11 | (index(icd10_`i', "E11"))
> }
> slist, noobs
> keep if has_E11
> drop has_E11
> exit
> 
> 
> 
> 
> *
> *   For searches and help try:
> *   http://www.stata.com/support/faqs/res/findit.html
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   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