Bookmark and Share

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: a loop error of -foreach-


From   Ulrich Kohler <[email protected]>
To   [email protected]
Subject   Re: st: a loop error of -foreach-
Date   Fri, 17 Sep 2010 11:28:04 +0200

Am Freitag, den 17.09.2010, 08:49 +0000 schrieb Grace Jessie:
> Dear statalists,
> I encountered a loop problem.
> The commands I edited are as follwows.
>  
> foreach j in a b c d {
> foreach i in e f g {
> if `j'==b {
> count
> }
> else {
> su
> }
> }
> }
>  
> Sometimes the error was showed "b ambiguous abbreviation",sometimes
> the error was "type mismatch".
> What is wrong?
> In my mind, -foreach lname in- can be followed by any_list.
> Thank you for any explanation!

-foreach lname in- can, as you said, followed by any list. However you
need to control that what is in the list makes sense to the commands
inside the loop. In your case the elements of the lists are interpreted
as (abbreviations of) variable names in the if-condition. The variable
name "b" is ambiguous if more than one variable exists starting with
"b". You encounter a type mismatch if only one such variable exists but
that variable is a numeric variable (which you compare with the string
b). Perhaps you might want to code

if "`j'" == "b" {

Leaving this asside your branch is a bit ill treated. Using a branch
such as this

. sysuse auto
. if foreign = 1 {
.	count
. }

checks whether the first observation of foreign contains 1. If it is the
case, all observations are counted. Hence, the result of the code above
depends on the sort order of the data set, which is not what you
normally want to do. 

Uli













if "`j'"=="b" {
	count	
}





>  
> Best regards,
> Grace
> 
>   		 	   		  
> *
> *   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/



*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index