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: st: Event within dates


From   David Kpento <dkpento@yahoo.com>
To   "statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu>
Subject   Re: st: Event within dates
Date   Thu, 1 Dec 2011 22:34:09 +0000 (GMT)

Thanks for the approach. But I am sorry when I tried it I got an error message invalid syntax.


----- Original Message -----
From: David Kantor <kantor.d@att.net>
To: statalist@hsphsun2.harvard.edu
Cc: 
Sent: Thursday, 1 December 2011, 20:51
Subject: Re: st: Event within dates

The following might work. It is an attempt to fill in some features 
that were needed in your method.
But it is somewhat brute-force in its approach. It does looping over 
observations (doubly), which is rarely needed.
There is probably a much better way to do this (involving -by-, for 
one), but this is all I can do at the moment.
HTH
--David


forval i = 1/ `N' {
         forval j = 1/ `N' {
                 replace rs1=1 if drug[`i]==1 & id[`i']==id[`j']  & 
inrange(date[`i'] - date[`j'],-56,56) in `i'
         }
}


At 02:15 PM 12/1/2011, David Kpento wrote:
>I have prescription data in panel format for analysis. I wish to 
>generate an indicator rs to be 1 for any subject who took drug2 
>within 56 days of taking drug1 (either before or after). Could 
>somebody please help me with any code? I am new to Stata so have 
>struggled with this for days.
>
>
>
>I use Stata/SE 9.0 for Windows.
>
>Many thanks
>
>David
>clear
>input id str9 date drug rs
>1 08apr2009 1 0
>1 08may2009 1 0
>1 08jun2009 2 1
>2 02jan2009 1 0
>2 28jan2009 2 1
>2 05apr2009 1 0
>3 07jan2009 2 1
>3 22mar2009 1 0
>3 02jul2009 1 0
>end
>
>I have a code like this after formatting the date into a Stata date 
>but rs1 is all zeros.
>
>gen date1 = date(date, "dmy")
>format date1 %d
>drop date
>rename date1 date
>
>g rs1=0
>local N=_N
>forval i = 1/ `N' {
>replace rs1=1 if drug==1 & id[`i'] & inrange(date[`i'] - date,-56,56) in `i'
>}

*
*   For searches and help try:
*  http://www.stata.com/help.cgi?searchhttp://www.stata.com/support/statalist/faqhttp://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/


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