*! v1.3.0 8Sep2005 /* added "joint" option to go with metareg.ado v2.3.1 */ program define metareg_pm, rclass version 7 syntax varlist [if], xvars(varlist numeric) [ univariable joint(string) ] * tokenize `varlist' args y wsvar n marksample touse tempvar xp z zabs tempname zi foreach x of varlist `xvars' { gen `: type `x'' `xp' = `x'[`n'] if `touse' drop `x' rename `xp' `x' } if "`univariable'" == "" { /* single multiple meta-regression */ metareg `y' `xvars' if `touse', wsvar(`wsvar') notaucomp `options' foreach x of varlist `xvars' { scalar `zi' = _b[`x'] / _se[`x'] return scalar z_`x' = `zi' } } else { /* separate univariable meta-regressions */ foreach x of varlist `xvars' { metareg `y' `x' if `touse', wsvar(`wsvar') notaucomp `options' scalar `zi' = _b[`x'] / _se[`x'] return scalar z_`x' = `zi' } } while "`joint'" != "" { gettoken tmp joint : joint, parse("\/|") if strpos("\/|", "`tmp'") { continue } local 0 `tmp' syntax varlist local j = `j' + 1 qui test `varlist' if "`r(chi2)'" != "" { return scalar chi2`j' = r(chi2) } else { return scalar chi2`j' = r(F) * r(df) } } end