You probably need to add some quotes, since you are testing equality
of strings and not variables or numbers.
Try...
foreach x of varlist a b c {
if "`x'" == "a" {
  use tempa, clear
          }
if "`x'" != "a" {
  use tempb, clear
          }
qui: do stuff
di "Line 1"
if "`x'" == "a" {
  use tempa, clear
          }
if "`x'" != "a" {
  use tempb, clear
          }
qui: do stuff2
di "Line 2"
}
On 3/20/07, Doogar,  Rajib <[email protected]> wrote:
Dear List,
I am trying to write a 'foreach x of varlist ...' loop in which I want
to use different data sets depending on which variable in varlist is
being processed.  When run, the following program correctly outputs
"Line 1" but fails to load tempa.dta and I cannot figure out why.  Any
tips will be most helpful.  Thanks.
foreach x of varlist a b c {
  if `x'==a {
    use tempa, clear
            }
  if `x'!=a {
    use tempb, clear
            }
  qui: do stuff
  di "Line 1"
  if `x'==a {
    use tempa, clear
            }
  if `x'!=a {
    use tempb, clear
            }
  qui: do stuff2
  di "Line 2"
}
r.
Rajib Doogar,
Department of Accountancy,
The University of Illinois at Urbana-Champaign
1206 S. Sixth Street, Champaign, IL 61820
Ph: 217.244.8083, Fax: 217.244.0902
http://www.cba.uiuc.edu/doogar
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
--
"Every great advance in natural knowledge has involved the absolute
rejection of authority."  - Thomas H. Huxley
Email - [email protected] / [email protected]
Website - http://slack.ser.man.ac.uk/
Photos - http://www.flickr.com/photos/slackline/
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/