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: Loop-within-loop error while looping over observations for a microsimulation


From   Stephen Cranney <cranney.stephen@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Loop-within-loop error while looping over observations for a microsimulation
Date   Mon, 6 Aug 2012 15:08:11 -0400

But with the current syntax isn't that not a problem? If I input the
numbers directly I have the following:

local N = _N
forvalues i = 1/`N' {
        forvalues j= 0/12 {

                replace childbirth= rbinomial(1, probabilityconceive)
if childbirth== .f
                replace childbirth[_n+j]== .i if (childbirth==1) in `i'
                }
        }


Here 1/`N' is directly computed before the loop starts, and the j
values are inputted directly (with the higher bound being the number
of postpartum months), so I'm still not seeing exactly how the syntax
has a problem. I've closed off the space that was between childbirth
and the _n, so it's not that it's accidentally recognizing the value
as a weight.

Thanks,

Stephen

On Mon, Aug 6, 2012 at 11:59 AM, Nick Cox <njcoxstata@gmail.com> wrote:
>
> No "seems to indicate" here: simply, subscripts are not allowed to the
> left of the assignment in Stata.
>
> The syntax diagram shows the form -replace oldvar = exp-. Stuff can
> follow that, but nothing else can be included.
>
> Nick
>
> On Mon, Aug 6, 2012 at 4:53 PM, Stephen Cranney
> <cranney.stephen@gmail.com> wrote:
> > Thanks for catching that; it's still giving me the "weights not
> > allowed" error message though, even when I delete the extra space.
> >
> > I found this prior Statlist post that seems to indicate that Stata
> > triggers the no weights allowed warning when the `i' is placed to the
> > left of the equals sign:
> >
> > http://www.stata.com/statalist/archive/2006-08/msg00976.html
> >
> > So I changed my code to the following, but I'm still getting the "no
> > weights allowed" message.
> >
> > local N = _N
> > forvalues i = 1/`N' {
> >         forvalues j= 0/12 {
> >                 replace childbirth= rbinomial(1, probabilityconceive) if childbirth== .f
> >                 replace childbirth[_n+j]== .i if (childbirth==1) in `i'
> >                 }
> >         }
> >
> > Best,
> >
> >
> >
> > On Mon, Aug 6, 2012 at 9:32 AM, daniel klein
> > <klein.daniel.81@googlemail.com> wrote:
> >> I did not follow closely, but there is a space between <childbirth>
> >> and  <[`i']> in your code, probably causing Stata to interpret <[`i']>
> >> as some kind of weight, rather than a subscript.
> >>
> >> Best
> >> Daniel
> >>
> >> --
> >> [...]
> >> However, when I change the
> >> monthsofpostpartum variable to a constant (in this case 12), it's
> >> giving me a "weights not allowed" sign.
> *
> *   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–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index