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 on April 23, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

re: Re: st: generating a variable that requires comparing two dates


From   "Ariel Linden, DrPH" <ariel.linden@gmail.com>
To   <statalist@hsphsun2.harvard.edu>
Subject   re: Re: st: generating a variable that requires comparing two dates
Date   Fri, 12 Apr 2013 14:29:58 -0400

Thank you, Clyde! This works like magic!



From
  Clyde B Schechter <clyde.schechter@einstein.yu.edu>
To
  "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu>
Subject
  Re: st: generating a variable that requires comparing two dates
Date
  Fri, 12 Apr 2013 15:11:45 +0000
________________________________________
Ariel Linden wrote:

...
I would like to generate a new variable ( by ID) that will equal 1 if there
was an alert (triggered on the surveydate, when that surveydate was the same
as the admitdate. The obvious problem is that the dates are not always
aligned so a straight "bys ID: gen test if surveydate==admitdate & alert==1"
will not always work.

In the data below, the code would need to "see" that the admitdate of
4/6/2011 has a corresponding surveydate a few lines down where the alert==1.
Similarly, the next admitdate is 4/20/2011, so it would need to lookup the
corresponding surveydate and verify that alert==1.
...
**** example data****

ID      surveydate      alert   admitdate
1       4/2/2011        1       4/6/2011
1       4/3/2011        1       4/20/2011
1       4/4/2011        0       4/20/2011
1       4/5/2011        0       4/20/2011
1       4/6/2011        1       4/20/2011
1       4/7/2011        0       4/20/2011
1       4/8/2011        0       4/20/2011
1       4/9/2011        0       4/20/2011
1       4/10/2011       0       4/20/2011
1       4/11/2011       0       4/20/2011
1       4/12/2011       0       4/20/2011
1       4/13/2011       0       4/20/2011
1       4/14/2011       0       4/20/2011
1       4/15/2011       0       4/20/2011
1       4/16/2011       0       4/20/2011
1       4/17/2011       0       4/20/2011
1       4/18/2011       0       4/20/2011
1       4/19/2011       0       4/20/2011
1       4/20/2011       1       4/20/2011
1       4/21/2011       0       4/20/2011

How about:

tempfile surveyalertdates
preserve
keep if alert == 1
keep id surveydate
/* DEPENDING ON YOUR DATA YOU NEXT SHOULD DO EITHER
isid id surveydate
OR
duplicates drop
*/
rename surveydate alertdate
save `surveyalertdates'
restore
gen alertdate = admitdate
merge 1:1 id alertdate using `surveyalertdates', keep(match master)
gen test = (_merge == 3)

The later question about identifying the situation where the alert occurred
1 day before admitdate just requires modifying the gen alertdate...
statement in the above.

Hope this helps.

Clyde Schechter
Dept. of Family & Social Medicine
Albert Einstein College of Medicine
Bronx, NY, USA



*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index