*!version 1.0 5May98 STB-44 sbe24 program define labbe version 5.0 local varlist "req ex min(4) max(4)" local if "opt" local in "opt" local weight "aweight" #delimit ; local options "noWT XLOg YLOg SAving(string) YLAbel(string) XLAbel(string) PERCent Symbol(string) *"; #delimit cr parse "`*'" parse "`varlist'", parse(" ") if "`weight'"!="" & "`wt'"!="" { di in re "Error in choice of weight" exit } qui { tempvar r1 r2 tmpwgt gen `r1'=`1'/(`1'+`2') `if' `in' gen `r2'=`3'/(`3'+`4') `if' `in' label var `r1' "Event rate group 1" label var `r2' "Event rate group 2" if "`wt'"=="" & "`weight'"=="" { gen `tmpwgt' =`1'+`2'+`3'+`4' local weight "[weight=`tmpwgt']" } else if "`wt'"=="" & "`weight'"!="" { local weight "[aweight `exp']" } else { local weight "[weight=1]" } if ~( `1'>=0 & `2'>=0 & `3'>=0 & `4'>=0 ) { di in re "Non-positive cell counts encountered" exit 198 } cap assert (`r1'>=0 & `r1'<=1 & `r2'>=0 & `r2'<=1 ) `if' `in' if _rc!=0 { di in re "Data incorrectly specified" exit 198 } if "`percent'"!="" { replace `r1'=`r1'*100 replace `r2'=`r2'*100 local lablist "25,50,75,100" } else { local lablist "0.25,0.5,0.75,1" } if "`xlabel'`ylabel'"=="" { if "`xlog'`ylog'"=="" { local nought "0," } local ylabel "ylabel(`nought' `lablist')" local xlabel "xlabel(`nought' `lablist')" local Grmin=0 local Grmax=1 } else { if "`ylabel'"!="" { local ylabel "ylabel(`ylabel')" } if "`xlabel'"!="" { local xlabel "xlabel(`xlabel')" } } parse "`options'", parse(" ") } /* end of qui section*/ if "`symbol'"=="" { local symbol "S" } if "`saving'"!="" { local saving "saving(`saving')" } graph `r1' `r2' `if' `in' `weight', `options' `xlog' `ylog' `xlabel' `ylabel' symbol(`symbol') gph open, `saving' gph font 300 200 graph if "`xlog'"!="" {local xlog "log"} if "`ylog'"!="" {local ylog "log"} local Grmin=max(_result(1), _result(3)) local Grmax=min(_result(2), _result(4)) local ay=_result(5) local by=_result(6) local ax=_result(7) local bx=_result(8) gph pen 9 local Ayco1=`ylog'(`Grmin')*`ay'+`by' local Ayco2=`ylog'(`Grmax')*`ay'+`by' local Axco1=`xlog'(`Grmin')*`ax'+`bx' local Axco2=`xlog'(`Grmax')*`ax'+`bx' gph line `Ayco1' `Axco1' `Ayco2' `Axco2' gph close end