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

From |
"Martin Weiss" <Martin.Weiss1@gmx.de> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: RE: st: Build groups with the same first two numbers of SIC |

Date |
Thu, 19 Mar 2009 19:06:25 +0100 |

<> That is why I labelled it an "addition". Hua may still take away from my "orthogonal" comment that a loop can survive execution even if a single command fails... HTH Martin -------- Original-Nachricht -------- > Datum: Thu, 19 Mar 2009 17:58:55 -0000 > Von: "Nick Cox" <n.j.cox@durham.ac.uk> > An: statalist@hsphsun2.harvard.edu > Betreff: RE: st: Build groups with the same first two numbers of SIC > But that was not the problem. The -if- condition didn't fail. The -keep- > was perfectly legal and executed as instructed. If what you suggest were to > be done, the -capture- would need to be on the next two statements, the > -egen- and the -save-. > > Nick > n.j.cox@durham.ac.uk > > Martin Weiss > > Other listers have highlighted easy fixes for your problem. Let me add: A > failure of an -if- condition, as you describe in your post, need not kill a > loop if you add -capture- in front of the respective command. If you want > a record of the suppressed error, add the line > > -di in red _rc- > > afterwards to see whether the return code was non-zero. > > "Hua Pan" <panhua@gmx.de> > > > I have a list of firms with four digit sic code, permno (identify Nr. > for > > firms), date and return and wish to get daily mean return within the > group, > > which has the same first two numbers of SIC code. > > > > My Dataset look like this: > > > > sic permno date ret > > … > > 3674 10012 5.Jan.2004 > > 10012 6.Jan.2004 > > 10012 7.Jan.2004 > > 3674 10259 5.Jan.2004 > > 10259 6.Jan.2004 > > 10259 7.Jan.2004 > > 3674 10299 > > 10299 > > 10299 > > 3674 10302 > > 10302 > > 10302 > > ----------------------------------------------------------------- > > 3714 10667 > > 10667 > > 10667 > > ------------------------------------------------------------------ > > 3728 10145 > > 10145 > > 10145 > > ------------------------------------------------------------------ > > 3861 10163 > > 10163 > > 10163 > > ------------------------------------------------------------------ > > 4213 10379 > > 10379 > > 10379 > > 4213 10649 > > 10649 > > 10649 > > > > > > At first I want to build several groups. Firms within each group have > the > > same character: the first two numbers of their SIC codes are identical. > For > > the example above > > sic permno > > Group1: 3674 10012, 10259, 10299, 10302 > > Group2: 3714, 3728 10667, 10145 > > Group3: 3861 10163 > > Group4: 4213 10379, 10649 > > > > Then I wish to get mean daily return for each group. > > > > So I just tried to separate the big dataset into several sub dataset, > and > > calculate daily mean return for each of them. Then I get the sub > datasets > > together with “append”. For the first step, I did: > > > > . local n=3600 > > . while `n' <4300 { > > 2. use "D:\sic.dta", clear > > 3. keep if sic >=`n' & sic < `n'+100 > > 4. by date, sort: egen meanret=mean(ret) > > 5. save "D:\ph\sic\sic_`n'.dta" > > 6. local n=`n'+100 > > 7. } > > > > > > It is successful for 36xx, 37xx. But when `n’== 3900, all observations > > in the complete file “D:\sic.dta" are deleted, because none of them > meet > > the requirement: sic>=3900 & sic < 4000, so there is an error: > > > > (y observations deleted) > > __000001 not found > > > > y is the number of all the observations in complete dataset. > > > > There are a huge number of observations, so I can’t do it one by one. > > Has anyone here an idea to solve this problem? Or some easier methods to > > generate such groups (I’ve also tried, but failed to get it ), so I > can get > > the daily mean return with: > > > > by group date, sort: egen meanret=mean(ret) > > > > Btw, I’m using stata 10. > > * > * 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/ -- Martin Weiss Hackersteigle 3 72076 Tübingen 00497071/793535 00491784597218 Aufgepasst: Sind Ihre Daten beim Online-Banking auch optimal geschützt? Jetzt absichern: https://homebanking.gmx.net/?mc=mail@footer.hb * * 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/

**References**:**st: Build groups with the same first two numbers of SIC***From:*"Hua Pan" <panhua@gmx.de>

**Re: st: Build groups with the same first two numbers of SIC***From:*"Martin Weiss" <Martin.Weiss1@gmx.de>

**RE: st: Build groups with the same first two numbers of SIC***From:*"Nick Cox" <n.j.cox@durham.ac.uk>

- Prev by Date:
**RE: st: Build groups with the same first two numbers of SIC** - Next by Date:
**st: clogit with fixed effects** - Previous by thread:
**RE: st: Build groups with the same first two numbers of SIC** - Next by thread:
**Re: st: Build groups with the same first two numbers of SIC** - Index(es):

© Copyright 1996–2016 StataCorp LP | Terms of use | Privacy | Contact us | What's new | Site index |