Raphael wrote:
I have a do-file called hem.do which I would like to run. But before I
run this do-file I need to drop some observations if dov >= d(1jan90).
Hence
use data, clear
drop if dov >= d(1jan90)
do hem.do
keep if id==5
save newdata1, replace
I would like to repeat this process about a thousand times with
different dates and ids located in a separate file (SEE SNIPPET) then
post to a single file. For example,
use data, clear
drop if dov >= d(2feb90)
do hem.do
keep if id==5
save newdata2, replace
use newdata1, clear
forvalues i=2/1000 {
append using newdata`i'
}
SNIPPET
id date_of_onset
5 1jan90
5 2feb90
5 6jun96
7 10oct97
7 25dec99
Can this be done?
------------------------------------------------------------------------
--------
Raphael,
Take a look at this; it may - or may not - do what you want.
Good luck,
Svend
// generating testdata
clear
input id str7 sdov
1 1jan89
2 2jan96
5 2jan90
7 11oct97
end
gen dov=date(sdov,"dmy",2006)
format dov %d
drop sdov
save data , replace
// generating snippet
clear
input nid str7 sonset
5 1jan90
5 2feb90
5 6jun96
7 10oct97
7 25dec99
end
gen onset = date(sonset,"dmy",2006)
format onset %d
drop sonset
local N=_N
save snippet , replace
// combine them, snippet first; it has `N' observations
append using data
save data2 , replace
. list
+----------------------------------+
| nid onset id dov |
|----------------------------------|
1. | 5 01jan1990 . . |
2. | 5 02feb1990 . . |
3. | 5 06jun1996 . . |
4. | 7 10oct1997 . . |
5. | 7 25dec1999 . . |
|----------------------------------|
6. | . . 1 01jan1989 |
7. | . . 2 02jan1996 |
8. | . . 5 02jan1990 |
9. | . . 7 11oct1997 |
+----------------------------------+
forvalues i=1/`N' {
use data2 , clear
drop if dov >= onset[`i'] & dov < .
do hem.do
keep if id==nid[`i']
save newdata`i' , replace
}
use newdata1 , clear
forvalues i=2/`N' {
append using newdata`i'
}
. list
+------------------------------+
| nid onset id dov |
|------------------------------|
1. | . . 5 02jan1990 |
2. | . . 5 02jan1990 |
3. | . . 7 11oct1997 |
+------------------------------+
__________________________________________
Svend Juul
Institut for Folkesundhed, Afdeling for Epidemiologi
(Institute of Public Health, Department of Epidemiology)
Vennelyst Boulevard 6
DK-8000 Aarhus C, Denmark
Phone: +45 8942 6090
Home: +45 8693 7796
Email: [email protected]
__________________________________________
*
* 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/