*# dat # {cmd:number missing} - Summarizes the amount of missing data by variable and by record # help *! 29aug2007 program nmiss version 8.2 syntax [varlist] [if] preserve if ~mi("`if'") qui keep `if' tempname k N scalar `N'=_N scalar `k'=0 foreach v of varlist `varlist' { qui count if mi(`v') if r(N)>0 { scalar `k'=`k'+1 capture confirm string var `v' if ~_rc { qui replace `v'="1" if ~mi(`v') qui destring `v', replace } local varlist2 `varlist2' `v' } } if mi("`varlist2'") { display "{txt}None missing" exit } keep `varlist2' egen nmiss = rmiss(*) label var nmiss "Number missing" ta nmiss display _newline(2) if ~mi("`varlist2'") { foreach v of varlist `varlist2' { qui gen wmiss_`v'=100*cond(mi(`v'),(`k'-nmiss)/(`k'-1),.) } collapse (count) `varlist2' (mean) wmiss_* display _column(16) "{text}{c |}" %7s "#miss" %7s "%" %8s "MW" display "{hline 15}{c +}{hline 22}" foreach v in `varlist2' { if (`v'<`N') display as text %20s "`v' {c |}" as result %7.0fc =`N'-`v' %7.0f =100*(`N'-`v')/`N' %8.0f =wmiss_`v' } } end