# st: RE: AW: It's too time-consuming for a simple cumulation

 From "Nick Cox" To Subject st: RE: AW: It's too time-consuming for a simple cumulation Date Thu, 3 Dec 2009 14:42:15 -0000

```The total over the last 12 months is the difference between the running
sum to now and the running sum to 12 months ago. Thus you just need to
use the -sum()- function to get the running sum and subtract. That can
be done within panels.

I can't see that you need extra machinery, and in particular that any
loops are needed, unless your data are measured at irregular times. If

Nick
n.j.cox@durham.ac.uk

Martin Weiss

For qualifiers with regard to time series, the functions in

*************
help time_series_functions
*************

come in handy.

I do not quite see how you process the result from your -count-
operation
further. In its current form, it would simply give you the result on
screen
every time through the loop. If that is what you want, leave it...

The -sum()- function gives you a running sum, make sure thos is what you
want for your "temp", otherwise use -egen, total()-.

It would be helpful if you could post a small example dataset.

Christina Lu

I have the stocks' daily turn-over ratio, and I want to know that, on
each
day for each stock, the sum of its daily turn-over ratio for the 12
monthes
before that day.

I used loop like this:

gen temp=sum(turn_over_ratio)
sort stkcd fye
forvalue h=1(1)1315    {
#h indicate the stock code
forvalue i=13118(1)18079   {
#i indicate the date, formed in %td
count if fye>=`i'-365 &fye<`i' & n==`h'
replace To_ratio=temp[_n-1]-temp[_n-r(N)-1] if fye==`i' &
n==`h'
}
}

This would do the trick, but it took me forever to obtain the result. So
I
would like to ask, is there any approach simpler & much quicker to do
the
cumulation?

*
*   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/
```