Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.

# st: AW: RE: Stop looping when reaching a certain observation

 From "Martin Weiss" To Subject st: AW: RE: Stop looping when reaching a certain observation Date Sun, 18 Apr 2010 18:31:30 +0200

```<>

If ever you wanted Stata to stop calculating means when it sees a "V" in
"kv", you could of course condition Nick`s call as -egen ssmean =
mean(price) if kv!="V", by(ss)-

*************
clear*

inp str15(date fondsnaam kv) price byte ss
16-May-08 Grontmij K 24.7  7
03-Jul-08 Fortis K 10.175
11-Jul-08 AMGK 49.73  1
14-Jul-08 AMGK 49.59  1
17-Jul-08 Arcelor V 51.92  2
25-Jul-08 Fugro V 41.35  6
11-Aug-08 Fugro K 46.69  6
18-Aug-08 Nutreco K 43.35  8
21-Aug-08 Fugro K 49.42  6
05-Sep-08 Smit K 48.5  9
08-Sep-08 ArcelorV 44.64  2
08-Sep-08 Fugro K 47.83  6
end

gen mydate=date(date, "DM20Y")
form mydate %td

egen ssmean = mean(price) if kv!="V", by(ss)
list, noo
*************

HTH
Martin

-----Ursprüngliche Nachricht-----
Von: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] Im Auftrag von Nick Cox
Gesendet: Sonntag, 18. April 2010 18:18
An: statalist@hsphsun2.harvard.edu
Betreff: st: RE: Stop looping when reaching a certain observation

There is absolutely no need to loop to solve your problem, of
calculating means by company.

egen ssmean = mean(price), by(ss)

or

using -table- or -tabstat-

are two of many much simpler methods.

Nick
n.j.cox@durham.ac.uk

George Chioran

I am trying to figure out how to stop at certain observations while
looping through a variable. Currently I am looping through the price
variable, and making the average price sorted by company. I would like
my program to stop doing the loop when variable kv is equal to V
However, I cannot manage to stop the loop when variable kv is equal to V
(at the price of 51.92 in the first instance)
as in a sample of my database attached below.

My program looks like this:

local j = 1
while `j' <= 10 {
preserve
keep if ss == `j'
su price
local `j' = _result(3)
restore
local j = `j' +1
}

Data base sample:

date fondsnaam kv price ss
16-May-08 Grontmij K 24.7  7
03-Jul-08 Fortis K 10.175
11-Jul-08 AMGK 49.73  1
14-Jul-08 AMGK 49.59  1
17-Jul-08 Arcelor V 51.92  2
25-Jul-08 Fugro V 41.35  6
11-Aug-08 Fugro K 46.69  6
18-Aug-08 Nutreco K 43.35  8
21-Aug-08 Fugro K 49.42  6
05-Sep-08 SmitK 48.5  9
08-Sep-08 ArcelorV 44.64  2
08-Sep-08 Fugro K 47.83  6

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