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]
st: strange foreach loop result
From 
 
"Airey, David C" <[email protected]> 
To 
 
"[email protected]" <[email protected]> 
Subject 
 
st: strange foreach loop result 
Date 
 
Wed, 15 Dec 2010 10:40:19 -0600 
.
I'm getting a really strange foreach loop result I don't understand.
In the first code snippet on fictitious data, I get what I want. In the second code snippit on the real data I get a strange result for when the condition:
if `var' == slope local myvar 1
is evaluated when `var' is slope. It produces the result myvar==4, when it should return myvar==1.
Anyone have a clue where my error is?
clear
set obs 10
gen a = 1
gen b = 2
gen c = 3
gen d = 4
foreach var of varlist a b c d {
	if `var' == a local myvar 1
	if `var' == b local myvar 2
	if `var' == c local myvar 3
	if `var' == d local myvar 4
	display "`var'", "`myvar'"
}
produces:
a 1
b 2
c 3
d 4
use result_pilot.dta, clear
keep slope lower upper ed50
foreach var of varlist slope lower upper ed50 {
	if `var' == slope local myvar 1
	if `var' == lower local myvar 2
	if `var' == upper local myvar 3
	if `var' == ed50 local myvar 4
	display "`var'", "`myvar'"
}
produces:
slope 4 <--weird, should be slope 1
lower 2
upper 3
ed50 4
*
*   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/