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 at the end of May, and its replacement, statalist.org is already up and running.


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

RE: st: Looping within a subset under a certain condition


From   "Gerard Solbrig" <gsolbrig@mail.uni-mannheim.de>
To   <statalist@hsphsun2.harvard.edu>
Subject   RE: st: Looping within a subset under a certain condition
Date   Sun, 30 Sep 2012 22:15:08 +0200

Here's what Stata says:

- forvalues x = 1/`r(max)' {
= forvalues x = 1/18554 {
- summarize obs if firm_numid == `x' & rep == 0, meanonly
= summarize obs if firm_numid == 1 & rep == 0, meanonly
- local z1 = r(min)
- local z2 = r(max)
- summarize obs if firm_numid == `x' & rep == 1, meanonly
= summarize obs if firm_numid == 1 & rep == 1, meanonly
- local o1 = r(min)
- local o2 = r(max)
- forvalues i = `z1'/`z2' {
= forvalues i = 1/106 {
- local isin = 1
- forvalues o = `o1'/`o2' {
= forvalues o = ./. {
invalid syntax
  if inrange(trandate[`i'], wind_start[`o'], wind_end[`o']) {
  local isin = 0
  }
  if `isin' == 1 replace rep_ins = 1 in `i'
  }
  }
r(198);



-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Nick Cox
Sent: Sonntag, 30. September 2012 21:53
To: statalist@hsphsun2.harvard.edu
Subject: Re: st: Looping within a subset under a certain condition

This code refers to -date- and -trandate- at different places.

gen long obs = _n

was recommended earlier.

Type

set trace on
set tracedepth 1

before running the code and see which line produces the error.

On Sun, Sep 30, 2012 at 7:28 PM, Gerard Solbrig
<gsolbrig@mail.uni-mannheim.de> wrote:
> I'm sorry, but I've been trying for hours now: Stata yields me 
> "invalid syntax r(198);" every time I try to run this code:
>
> sort cusip6 rep date
> gen obs = _n
> gen rep_ins = 0
> egen firm_numid = group(cusip6)
> summarize firm_numid, meanonly
> forvalues x = 1/`r(max)' {
>         su obs if firm_numid == `x' & rep == 0, meanonly
>         local z1 = r(min)
>         local z2 = r(max)
>         su obs if firm_numid == `x' & rep == 1, meanonly
>         local o1 = r(min)
>         local o2 = r(max)
>         forvalues i = `z1'/`z2' {
>                 local isin = 1
>                 forvalues o = `o1'/`o2' {
>                         if inrange(trandate[`i'], wind_start[`o'],
> wind_end[`o']) {
>                         local isin = 0
>                         }
>                 if `isin' == 1 replace rep_ins = 1 in `i'
>                 }
>         }
> }
>
> Despite countless tries and modifications, I cannot find the mistake 
> in the syntax. I simply don't know what is supposed to be wrong here.
> I know this code should be working the way I need it...
>
> Many thanks in advance.
> Gerard
>
>
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/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/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


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