Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: nested loops for calculating a population 'at risk'


From   "David Harrison" <David@icnarc.org>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: nested loops for calculating a population 'at risk'
Date   Tue, 7 Sep 2004 16:07:36 +0100

Sue

I'm presuming that what you have is a birthdate (in variable 'date') and gestation at birth in days (variable 'days').

The following (wholly untested) code should then produce a new file containing for each date, the number of women between 168 & 259 days on that date:

postfile p date nwomen using newfile.dta
forvalues d=`=d(1jan1988)'/`=d(31dec2000)' {
	count if days-date+`d'>=168 & days-date+`d'<=259
	post p (`d') (`r(N)')
}
postclose p

David
david@icnarc.org

-----Original Message-----
From: Sue Lee [mailto:Sue.Lee@lshtm.ac.uk]
Sent: 07 September 2004 15:19
To: statalist@hsphsun2.harvard.edu
Subject: st: nested loops for calculating a population 'at risk'


hello,

i'm not exactly new to the list, but i've never posted a question
before.  i'm really stuck at the moment so i'm hopeful that someone may
be able to help...  

basically, i have a large data set of births from 1 jan 1988 to 31 dec
2000.  each birth has its own record.  i would like to calculate the
number of women at a certain stage of pregnancy on any given day, say
between 24 and 37 weeks (which equals 168 to 259 days).   

so, for example, to calculate the number of women on 1 Jan 1988 who are
at this stage of pregnancy, I figure I need to:
include all women on that day who are greater than 167 days, but less
than 259 days 
+ all women on 2 Jan 1988 who are more than 168 days but less than 260
days 
+ all women on 3 Jan 1988 who are more than 169 days but less than 261
days 
+ all women on 4 Jan 1988 who are more than 170 days but less than 262
days, 
etc   (repeat loop until max value of days is reached) 
but I can't figure out how to translate this into stata code.  

One of my big problems is that I have many records for each date (i.e.,
each baby born on 1 jan 1988 has a record for that day!) and I am
stumped on how deal with this in a loop. 

I hope this makes sense and that someone is feeling generous enough to
help me figure this out!   

Many thanks 
Best wishes 
Sue
PhD student 
London School of Hygiene & Tropical Medicine   
*
*   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/



*
*   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/



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