Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# st: SV: RE: range of a stringvariable

 From "Tomas Lind" To Subject st: SV: RE: range of a stringvariable Date Thu, 29 Apr 2010 08:46:25 +0200

```Thanks Nick, this is wonderful.

Maybe the manual should contain more examples. They are easier to understand
(and not so drie).

/Tomas

-----Ursprungligt meddelande-----
Från: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] För Nick Cox
Skickat: den 28 april 2010 18:41
Till: statalist@hsphsun2.harvard.edu
Ämne: st: RE: range of a stringvariable

Some simpler ways of approaching this have not quite come to the surface

Four key points:

1. You are not obliged to create lots of little variables.

2. You are not obliged to convert any bits and pieces to real unless you
genuinely want those results for other purposes.

3. Inequalities apply to strings as well as to numbers. The order
concerned is just alphanumeric order, precisely that used by Stata to
-sort- string variables.

4. -substr()- understands negative indexes as counted from the end of a
string.

Thus

if inrange(substr(code, 1, 4), "E300", "E499") & substr(code, -1, 1) !=
"A"

is a complete answer to the first question. Similarly

if substr(code,-1,1) == "A"

is a complete answer to the second question.

It's the driest of dry reading but the functions section of the
documentation is an eye-opener in terms of the toolkit offered.

Nick
n.j.cox@durham.ac.uk

Tomas Lind

Choose individuals based on a string variable with a range of values

I am working with ICD-10 codes (codes for different types of diseases).
The
codes start with a letter A - Z followed by 2 or 3 digits. In some cases
they might end with the letter A. Say that I have a dataset with 5
subjets
(id=1 to 5) with these ICD-10 codes (fake data, in reality I have
millions
of subjects):

I460  E343  I46  C764  E438

How can I choose individuals with ICD-10 codes in the range E300 to E499
(not including codes that end up with A). What about if I want to
include
codes that ends with an A. (There is a convenient command for ICD-9
codes,
but not for ICD-10 codes.)

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