Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: Assigning values from a list
From
Maarten buis <[email protected]>
To
[email protected]
Subject
Re: st: Assigning values from a list
Date
Fri, 21 May 2010 00:13:27 -0700 (PDT)
--- On Fri, 21/5/10, [email protected] wrote:
> I have 4 variables that are basically DSM codes and I would
> like to search through those codes.
>
> I would like to define lists of diseases and then pick
> which cases have those diseases
>
> So instead of writing
>
> gen virus=(var1==53.20) |(var1==54.42) |(var1==54.43) | /*
> */ (var1==76.00) |(var1==76.90)
>
> replace virus=((var2==53.20) |(var2==54.42) |(var2==54.43) | /*
> */ (var2==76.00) |(var2==76.90)) if virus==.
>
> replace virus=((var3==53.20) |(var3==54.42) |(var3==54.43) | /*
> */ (var3==76.00) |(var3==76.90)) if virus==.
>
> replace virus=((var4==53.20) |(var4==54.42) |(var4==54.43) | /*
> */ (var4==76.00) |(var4==76.90)) if virus==.
>
>
> Repeat for several other categories of diseases - ends up
> with very long and confusing code.
>
>
> Is there a way of defining a list eg virus={53.20, 54.42,
> 54.43, 76.00, 76.90}
>
> and checking to see whether var1-4 have values in the
> list?
You could do something like this:
local list "53.20, 54.42, 54.43, 76.00, 76.90"
gen byte virus = ( ///
inlist(var1, `list') + ///
inlist(var2, `list') + ///
inlist(var3, `list') + ///
inlist(var4, `list') ///
) > 1 ///
if !missing(var1, var2, var3, var4)
Hope this helps,
Maarten
--------------------------
Maarten L. Buis
Institut fuer Soziologie
Universitaet Tuebingen
Wilhelmstrasse 36
72074 Tuebingen
Germany
http://www.maartenbuis.nl
--------------------------
*
* 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/