Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: Re: RE: Multiple commands under "By varlist"?


From   "Subhankar Nayak" <nayak@bellsouth.net>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: Re: RE: Multiple commands under "By varlist"?
Date   Sat, 26 Jun 2004 09:57:20 -0400

Thanks Nick,

I tried the -statsby- command as Scott Merryman suggested and the -forval-
command that you are suggesting. But both these take almost exactly the same
amount of time as the -while- looping command... (Given my program code,
each simulation round is taking about 240-330 seconds, and I have got 1000
simulation rounds, if not more).

The -by- command is so much faster than the -while- command...

If I compare

by month: regress returns factor

vs.

local i = 1
while i <= 1000 {
regress returns factor if `i' == month
local i = `i' + 1
}

I find that the -by- command is atleast 15-20 times faster than the -while-
loop.
Given this, it would be really wonderful to be able to execute multiple
commands under -by-...
Some wishful thinking!

----- Original Message ----- 
From: "Nick Cox" <n.j.cox@durham.ac.uk>
To: <statalist@hsphsun2.harvard.edu>
Sent: Saturday, June 26, 2004 8:18 AM
Subject: st: RE: Multiple commands under "By varlist"?


> The short answer is that -by:- cannot
> be extended in this way. But there
> are several nearly equivalent procedures.
>
> Scott Merryman suggested -statsby-
> which is one good answer. You may
> or may not want the data reduction
> (collapsing of the data) that produces.
>
> You could write a program to be "byable".
> That way, an arbitrarily complex operation
> can be carried out by your own program.
>
> For this kind of example, however, an approach
> based on -forval- or -foreach- is indicated.
> You may want something like
>
> gen tintcp = .
> gen tslope = .
> forval i = 1/12 {
> regress returns factor if month == `i'
> replace tintcp = _b[_con] if month == `i'
> replace tslope = _b[factor] if month == `i'
> }
>
> There is a much fuller discussion at
> http://www.stata.com/support/faqs/data/foreach.html
>
> Nick
> n.j.cox@durham.ac.uk
>
> Subhankar Nayak
> >
> > Is it possible to give multiple commands following a particular
> > by varlist command?
> >
> > Can I give something like:
> >
> > by month: {
> > regress returns factor
> > replace tintcp = _b[_con]
> > replace tslope = _b[factor]
> > }
> >
> >
> > Of course, what I give here is not working, but is there
> > anyway to make it functional?
>
> *
> *   For searches and help try:
> *   http://www.stata.com/support/faqs/res/findit.html
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
>


*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   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   |   What's new   |   Site index