*! version 1.2.0 13 September 1993 RG STB-17: sg21 program define equip version 3.1 * enter control group first: p n p n, delta() sdelta2()] * enter control group first: p n pbase, delta() sdelta2()] local options "Delta(string) SDelta(string) BY(string)" local exp "opt noprefix" local if "opt" local in "opt" local varlist "req ex max(1)" parse "`*'" cap confirm number `exp' if _rc==0 { if "`by'"!="" { di in red "may not use by() in this situation" exit 198 } qui su `varlist' `if' `in' local n1=_result(1) local u1=_result(3) if "`delta'"=="" { local delta=.2*`exp' } if "`delta'"!="" { if "`sdelta'"=="" { local sdelta `delta' } } equipi `u1' `n1' `exp', d("`delta'") sd("`sdelta'") exit } cap confirm var `exp' if _rc==0 { if "`by'"!="" { di in red "may not combine second variable with by()" exit 198 } quietly sum `varlist' `if' `in' local n1 = _result(1) local u1 = _result(3) quietly sum `exp' `if' `in' local n2 = _result(1) local u2 = _result(3) if "`delta'"!="" { if "`sdelta'"=="" { local sdelta `delta' } equipi `u1' `n1' `u2' `n2', d("`delta'") sd("`sdelta'") } else { equipi `u1' `n1' `u2' `n2' } exit } if "`by'"!="" { confirm var `by' quietly tab `by' `if' `in' if _result(2)!=2 { di in red "`by' takes on " _result(2) " values, not 2" exit 450 } tempvar M TOUSE quietly gen byte `TOUSE' = 1 `if' `in' sort `by' `TOUSE' quietly by `by' `TOUSE': gen byte `M'=cond(_n==1,1,.) if `TOUSE'==1 sort `M' `by' quietly sum `varlist' if `by'==`by'[1] & `TOUSE'==1 local n1 = _result(1) local u1 = _result(3) quietly sum `varlist' if `by'==`by'[2] & `TOUSE'==1 local n2 = _result(1) local u2 = _result(3) if "`delta'"!="" { if "`sdelta'"=="" { local sdelta `delta' } equipi `u1' `n1' `u2' `n2', d("`delta'") sd("`sdelta'") } else { equipi `u1' `n1' `u2' `n2' } } end