*! ranksum2 -- ranksum with U/mn added (sg27: STB-22) *! version 2.0.1 10/04/91; version 1.0 of ranksum2 03 June 1992 R. Goldstein program define ranksum2 version 3.1 local varlist "req ex max(1)" local options "BY(string)" local if "opt pre" local in "opt pre" parse "`*'" ranksum `varlist' `if' `in', by(`by') quietly { local V1 "$S_1" local W "$S_2" tempvar touse mark `touse' `if' `in' tempname nn mm min max mwu mwup x su `by' if `touse' scalar `min' = _result(5) scalar `max' = _result(6) if `V1'==_result(5) { scalar `x' = `min' scalar `min' = `max' scalar `max' = `x' } su `varlist' if `touse' & (`by'==`max') scalar `nn'=_result(1) su `varlist' if `touse' & (`by'==`min') scalar `mm'=_result(1) scalar `mwu'=(`nn' * `mm')+((`nn' * (`nn' + 1))/2) - `W' scalar `mwup'=`mwu'/(`nn' * `mm') global S_5 = `mwu' global S_6 = `mwup' } /* end quietly */ di _n in gr " U/mn " in ye = `mwup' _n end