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
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?