Bookmark and Share

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


From   David Kantor <[email protected]>
To   [email protected]
Subject   Re: st: Event within dates
Date   Thu, 01 Dec 2011 15:51:01 -0500

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?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index