xtsum.ado
来自「是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到」· ADO 代码 · 共 122 行
ADO
122 行
*! version 1.0.9 06aug2004
program xtsum, rclass byable(recall) sort
version 6, missing
syntax [varlist(ts)] [if] [in] [, I(varname)]
xt_iis `i'
local ivar "`s(ivar)'"
capture tsset
if _rc == 0 {
local ivar `r(panelvar)'
local tvar `r(timevar)'
}
tempname N n Tbar mean sdo min max sdb sdw minb maxb minw maxw
tempvar touse tu bv wv Ti
mark `touse' `if' `in'
di in smcl in gr _n "Variable" _skip(9) "{c |}" _skip(6) /*
*/ "Mean Std. Dev. Min Max {c |} Observations" /*
*/ _n "{hline 17}{c +}{hline 44}{c +}{hline 16}"
sort `ivar' `tvar'
tokenize `varlist'
while "`1'"!="" {
quietly {
gen byte `tu' = `touse' & `1'<.
summ `1' if `tu'
scalar `N' = r(N)
scalar `mean' = r(mean)
scalar `sdo' = cond(`N'>1,sqrt(r(Var)),.)
scalar `min' = r(min)
scalar `max' = r(max)
by `ivar': gen long `Ti' = /*
*/ cond(_n==_N,sum(cond(`tu',1,0)),.)
by `ivar': gen double `bv'= cond(_n==_N, /*
*/ sum(cond(`tu',`1',0)) / `Ti', . )
summ `Ti' if `tu'
* scalar `Tbar' = cond(r(mean)>=.,0,r(mean))
if r(min)==r(max) { /* min == max */
local wrd " T"
}
else local wrd "T-bar"
drop `Ti'
by `ivar': gen double `wv' = /*
*/ cond(`tu',`1'-`bv'[_N], .) /* + `mean' */
}
#delimit ;
di in smcl in gr /*
*/ abbrev("`1'",8) _col(10) "overall {c |} " in ye
%9.0g `mean' " "
%9.0g `sdo' " "
%9.0g `min' " "
%9.0g `max' in gr " {c |}"
_col(69) "N =" %8.0f `N' ;
qui summ `bv' ;
scalar `n' = r(N) ;
scalar `sdb' = cond(`n'>1,sqrt(r(Var)),.) ;
scalar `minb' = r(min) ;
scalar `maxb' = r(max) ;
di in smcl in gr _col(10) "between {c |}" _col(31) in ye
%9.0g `sdb' " "
%9.0g `minb' " "
%9.0g `maxb' in gr " {c |}"
_col(69) "n =" %8.0f r(N) ;
qui summ `wv' ;
scalar `sdw' = cond(r(N)>1,sqrt(r(Var)),.) ;
scalar `minw' = r(min) + `mean' ;
scalar `maxw' = r(max) + `mean' ;
scalar `Tbar' = `N'/`n' ;
di in smcl in gr _col(10) "within {c |}" _col(31) in ye
%9.0g `sdw' " "
%9.0g `minw' " "
%9.0g `maxw' in gr
" {c |} `wrd' =" %8.0g `Tbar' ;
#delimit cr
drop `wv' `bv' `tu'
ret scalar N = `N'
ret scalar n = `n'
ret scalar Tbar = `Tbar'
ret scalar mean = `mean'
ret scalar sd = `sdo'
ret scalar min = `min'
ret scalar max = `max'
ret scalar sd_b = `sdb'
ret scalar min_b = `minb'
ret scalar max_b = `maxb'
ret scalar sd_w = `sdw'
ret scalar min_w = `minw'
ret scalar max_w = `maxw'
* double saves
scalar S_1 = `N'
scalar S_2 = `n'
scalar S_3 = `Tbar'
scalar S_4 = `mean'
scalar S_5 = `sdo'
scalar S_6 = `min'
scalar S_7 = `max'
scalar S_8 = `sdb'
scalar S_9 = `minb'
scalar S_10= `maxb'
scalar S_11 = `sdw'
scalar S_12 = `minw'
scalar S_13 = `maxw'
mac shift
if "`1'"!="" {
di in smcl in gr _col(18) "{c |}" _col(63) "{c |}"
}
}
end
exit
. sum cost avgcost dcost
Variable | Mean Std. Dev. Min Max | Observations
-----------------+--------------------------------------------+----------------
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
longlong overall | 123456789 123456789 3.154 191.56 | N =12345678
longlong overall | 44.44588 46.30909 3.154 191.56 | N =12345678
between | 44.57574 4.4645 125.584 | n = 22
within | 20.41346 123456789 912345678 | T-bar = 6
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?