Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.

# Re: st: Fwd: Nested Foreach Comparing too Many Variables

 From Nick Cox To "statalist@hsphsun2.harvard.edu" Subject Re: st: Fwd: Nested Foreach Comparing too Many Variables Date Fri, 22 Mar 2013 13:52:34 +0000

```Yes; you are right that you were wrong.

```
There was a fuller discussion in my paper "Problems with lists" in the Stata Journal in 2003. I'll post the full reference later today.
```
Nick

On 22 Mar 2013, at 13:32, William Sankey <wsankey@gmail.com> wrote:

```
```Thank you Nick, this looks great.

Would you be able to tell me if I was right...is Diagnosis1 being
compared against Severity1 Severity2 Severity3 and Severity4...or just
Severity1? I just really need Diagnosis1 to match to Severity1,
Diagnosis2 to match to Severity2 etc...

Is that what is happening here?

Thank you again for the help.

Will Sankey

```
On Fri, Mar 22, 2013 at 5:06 AM, Nick Cox <njcoxstata@gmail.com> wrote:
```Yes. You will kick yourself.

forval j = 1/5 {
replace  complex_severity=1 ///
if  inlist(Diagnosis`j',"710","714","715","720","725","733")
& inrange(Severity`j', 2, .)
}

-inrange()- is another way to handle your second comparison. What you
had is fine; I just showed you another way.

Nick

```
On Fri, Mar 22, 2013 at 9:57 AM, William Sankey <wsankey@gmail.com> wrote:
```
```
I am running the following nested foreach and am afraid I am comparing
```too many things:

local DIAG "Diagnosis1 Diagnosis2 Diagnosis3 Diagnosis4 Diagnosis5"
local SEV "Severity1 Severity2 Severity3 Severity4 Severity5"

foreach X of varlist `DIAG' {
foreach Y of varlist `SEV' {
replace  complex_severity=1 if
```
inlist(`X',"710","714","715","720","725","733") & (`Y'>=2 & `Y' ! =.)
```       }
}

```
I would like to compare Diagnosis1 with Severity1 but fear the code is
```comparing Diagnosis1 with every severity level.

Could you recommend a better way of achieving the goal; something
along the lines of a different array?
```
```*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/
```
```

--
William J. Sankey
Johns Hopkins University
MA Public Policy '12
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/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/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/
```