Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From   George Chioran <george_chioran@yahoo.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: AW: RE: Stop looping when reaching a certain observation
Date   Sun, 18 Apr 2010 14:06:26 -0700 (PDT)

Thank you for the insights they are useful. 
However, that does not solve my problem. I need to do the average price until a V is encountered and then stop, not just exclude the V's.
Maybe a way of achieving this would be to drop all the observations after a V is encountered, and then simply do the average.
Does anyone know how to drop all the data after a certain observation? Or maybe segment the data  into different files according to the V's?


________________________________
From: Martin Weiss <martin.weiss1@gmx.de>
To: statalist@hsphsun2.harvard.edu
Sent: Sun, April 18, 2010 6:31:30 PM
Subject: st: AW: RE: Stop looping when reaching a certain observation


<> 

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

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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index