Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Nick Cox <njcoxstata@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: Difference in values within the same variable |
Date | Tue, 3 Jan 2012 14:28:09 +0000 |
A small extra flourish would be bysort patid (timesince) : gen selected = timesince[1] < 183 edit if selected where "183" or any similar value represents six months in days. That is, if the smallest value of -timesince- is less than six months, then that patient had two or more prescriptions in a period of six months or less. Such patients have -selected- 1 and others have -selected- 0. Nick On Tue, Jan 3, 2012 at 2:06 PM, Christopher Baum <kit.baum@bc.edu> wrote: > <> > Sara said > > I have long data with multiple prescriptions per person. I want to > define the length of time between successive prescriptions (see data > below, which is sorted by patid (person ID) and presc_date (date of > prescription)), with the eventual aim of including in my analysis only > people who received 2 or more prescription within 6 months of each other. > > I'm not bothered really how I do this, although I have been trying to do > it by calculating another variable that gives the time from the previous > prescription (within patid). I believe the equivalent command in SPSS is > called a 'lag', but searching for this in Stata doesn't see to have > turned up the right stuff. > > -------------- > clear all > input patid str9 presc_date > 4457 11aug1997 > 4457 18aug1997 > 4457 15sep1997 > 4457 29sep1997 > 4457 27oct1997 > 4457 15dec1997 > 4457 15dec1997 > 4457 16apr1998 > 4457 11may1998 > end > g rxd = date(presc_date,"DMY") > format rxd %td > bysort patid (rxd): g timesince = rxd[_n] - rxd[_n - 1] > list > ----------------- * * 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/