*# dat # {cmd:list} in {it:paragraph} form *! 17jul2008 program listp version 10.0 mata: labelopts() syntax [varlist] [if/] [in/] [,`labelopts' out(string)] mata: labelopts("back") marksample touse, novarlist strok qui count if `touse' mata: DoIt("`touse'") end version 11 mata: void DoIt(string scalar touse) { names=varlist(st_local("varlist"))' n=rows(names) obs=st_numscalar("r(N)") ncol=2+(st_local("vlb")=="b") body=J(n*obs,ncol,"") body[,1]=J(obs,1,vardisp(names,st_local("nlb"))) for (v=1;v<=n;v++) { if (st_isnumvar(names[v])) one=st_data(.,names[v],touse) else one=st_sdata(.,names[v],touse) body[rangel(v,n*obs,n),2..ncol]=valdisp(names[v],one,st_local("vlb")) } if (ncol==3) body=body[,(1,3,2)] table=table_createM(body) table_code(table,"class","c",1,"txt") table_code(table,"align","c",ncol,"<") table_code(table,"hline","r",rangel(n,n*obs,n),"std") asarray(table,"wrap",(-1,3,3)[1..ncol]) table_present(table) } end