<>
If the user wants separate variables per month,
clear
inp str10(var1 var2)
"30nov2007" "14feb2008"
"21jan2009" "07apr2009"
"24apr2008" "09jul2008"
"22feb2008" "08may2008"
"01oct2008" "16dec2008"
"13jul2009" "28sep2009"
"04oct2008" "20dec2008"
"07jul2009" "22sep2009"
"03jun2008" "19aug2008"
"11feb2009" "30apr2009"
"31mar2007" "17jun2007"
"01may2007" "19jul2007"
"04apr2007" "22jun2007"
"03jul2008" "20sep2008"
"10jul2007" "27sep2007"
end
gen date1=date(var1, "DMY")
gen date2=date(var2, "DMY")
drop var1 var2
g patientid = _n
reshape long date, i(patientid)
tsset patientid date
format date %td
l, sepby(patientid)
tsfill
g mon = mofd(date)
g days = 1
collapse (count) days, by(patientid mon)
format mon %tm
l patientid mon days, sepby(patientid)
// if you want separate variables per month:
tab mon, g(M)
local nmo `r(r)'
su mon, mean
local monr `r(min)'
forv i=1/`nmo' {
qui replace M`i' = M`i' * days
rename M`i' mon`monr'
local ++monr
}
// creation of varnames in YYMM format left as a further enhancement
// these variables could be collapsed by patient to end up with wide-
format data
Kit Baum | Boston College Economics & DIW Berlin | http://ideas.repec.org/e/pba1.html
An Introduction to Stata Programming
| http://www.stata-press.com/books/isp.html
An Introduction to Modern Econometrics Using Stata | http://www.stata-press.com/books/imeus.html
*
* 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/