Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: st: Counting using a rolling time window
From 
 
"Louis, Philippe" <[email protected]> 
To 
 
"[email protected]" <[email protected]> 
Subject 
 
RE: st: Counting using a rolling time window 
Date 
 
Thu, 12 May 2011 12:26:36 +0000 
Thank you! Your suggestion works perfectly.
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Nick Cox
Sent: Tuesday 10 May 2011 3:49 PM
To: [email protected]
Subject: Re: st: Counting using a rolling time window
I imagine your example is to be taken with the correction that the first 1997m8 should be 1997m7. I suggest
bysort id (time) : gen count = sum(action) - sum(action[_n-3])
See also comments in
<http://www.hsph.harvard.edu/cgi-bin/lwgate/STATALIST/archives/statalist.1105/date/article-397.html>
on the expression "a code", which I warn against.
Nick
On Tue, May 10, 2011 at 2:12 PM, Louis, Philippe <[email protected]>
> I have the following problem. My dataset contains an id-number, a time variable measured in months, and a binary variable indicating action or no action. The time frame is not the same for each person (i.e. id 1 is monitored between January 2000 and May 2000, id 2 between August 1997 and October 1997, etc.). The action variable records whether an action happened during that month or not.
>
> I would like to create a new variable that counts the number of positive actions (i.e. action variable equal to 1). More specifically, I am looking for a code that would loop through the dataset and that would count the number of action==1 using a three months' time window (i.e. current month + 2 previous months), resetting the counter at every new id. If less than three months are available, the loop should just count the number of action==1 of the available months.
>
> An example:
> Id      time            action  count
> 1       2000m1  1       1
> 1       2000m2  1       2
> 1       2000m3  1       3
> 1       2000m4  0       2
> 1       2000m5  0       1
> 2       1997m8  0       0
> 2       1997m8  1       1
> 2       1997m9  0       1
> 2       1997m10 1       2
>
> I have been struggling for a while to write a code that would generate the count variable.
>
> Any help or suggestions would be appreciated.
*
*   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/