Statalist The Stata Listserver


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: looping through dates and keeping dates which are two years apart


From   "David Harrison" <david.harrison@icnarc.org>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: looping through dates and keeping dates which are two years apart
Date   Mon, 27 Feb 2006 10:45:56 -0000

One brute force way (i.e. doing exactly what you set out in your
numbered steps) is as follows:

local refdate = date[1]
gen byte dropflag = 0
forvalues i = 2/`=_N' {
	if date[`i']-`refdate'<=730 {
		replace dropflag = 1 in `i'
	}
	else {
		local refdate = date[`i']
	}
}
drop if dropflag
drop dropflag

There must be a more elegant way, but unless your dataset is really big
and/or you are going to do this often it is probably not worth the
effort to work it out...

Hope this helps

David

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Rajesh
Tharyan
Sent: 27 February 2006 10:19
To: statalist@hsphsun2.harvard.edu
Subject: st: looping through dates and keeping dates which are two years
apart

Hi,

I have a series of dates as follows

    03nov1989  
    04jan1990  
    15feb1990  
    19feb1990  
    30aug1991  
    03sep1993  
    08aug1995  
    27feb1996  
    06aug1996  
    26feb1997  
    22aug1997  
    30sep1997  
    18feb1998  
    11aug2000  

I want to keep dates if they are two years apart. I tried the command:
drop if date-date[_n-1]<= 730

this gives

03nov1989
03sep1993
11aug2000 

This is not the result I want as you will see that the date 27feb1996 is
more than 730 days apart from 03sep1993 but the command actually looks
at
03sep1993 and the date previous to that and as the previous date is
27feb1996 (less than 2 years apart) drops it.

The logic of what I want to do is this..but I don't know how to code
it..!!!!

1. Start with the first date.

2. See if the next date is more than 730 days from it. if its less than
73o days away from the first date drop it.

3. If it is more than 730 days away keep it and 

4. Now this date becomes the reference date and the difference between
this date and the next is calculated and so on





Thanks
Rajesh 




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

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________

______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________

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