⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xttab.ado

📁 是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到
💻 ADO
字号:
*! version 1.1.7  02apr2005 
program define xttab, byable(recall) sort
	version 6.0, missing
	syntax varlist(max=1) [if] [in] [, I(varname)]
	xt_iis `i'
	local ivar "`s(ivar)'"

	local typ : type `varlist'
	if substr("`typ'",1,3)=="str" { 
		di in red "`varlist' must be numeric"
		exit 109
	}

	preserve

	tempvar touse freqo freqb freqw nivar ni
	mark `touse' `if' `in'
	markout `touse' `varlist' `ivar'
	qui sum if `touse'== 1
	if r(N)==0 {
		noi di in red "no observations"
		exit 2000
	}
	local v "`varlist'"

	quietly { 
		keep if `touse'
		keep `v' `ivar'

		sort `ivar' `v'
		by `ivar': gen  long `nivar' = _N
		by `ivar': gen byte `ni'=1 if _n==_N
		summ `ni'
		local N = r(sum)
		drop `ni' 

		sort `v' `ivar'
		by `v': gen long `freqw' = _N
		by `v' `ivar': replace `nivar' = 0 if _n!=_N
		by `v': replace `nivar' = sum(`nivar')

		by `v': gen long `freqo' = _N
		local Nv = _N
		by `v' `ivar': gen long `freqb' = 1 if _n==_N
		by `v': replace `freqb'=sum(`freqb')
		by `v': replace `freqb' = `freqb'[_N] 
		by `v':  keep if _n==_N
	}

	qui gen long `ni' = sum(`freqb')

	local vlab : value label `v'
	if "`vlab'"!="" { 
		tempvar new
		decode `v', gen(`new') maxlen(8)
		local v `new'
	}

	di _n _skip(18) in gr "Overall" _skip(13) "Between" _skip(12) "Within"
	di in smcl in gr %9s abbrev("`varlist'",9) /*
	*/ " {c |}    Freq.  Percent" _skip(6) "Freq.  Percent" /*
	*/ _skip(8) "Percent"
	di in smcl in gr "{hline 10}{c +}{hline 53}"

	local i 1
	while `i' <= _N { 
		local stub = `v'[`i']
		if "`new'" != "" {
			local distub %9s "`stub'"
		}
		else {
			local distub %9.0g `stub' 
		}
		di in smcl in gr `distub' " {c |}" in ye /*
		*/ %8.0f `freqo'[`i'] /*
		*/ %10.2f 100*`freqo'[`i']/`Nv' /*
		*/ %10.0f `freqb'[`i'] /* 
		*/ %10.2f 100*`freqb'[`i']/`N' /* `ni'[_N] */ " " /* 
		*/ %14.2f 100*`freqw'[`i']/`nivar'[`i']
		local i=`i'+1
	}
	tempvar overp
	quietly {
		gen `overp'= sum( /*
			*/ (`freqb'/`ni'[_N])*100*(`freqw'/`nivar') /*
			*/ )
		replace `freqo'=sum(`freqo')
		replace `freqb'=sum(`freqb')
	}
	di in smcl in gr "{hline 10}{c +}{hline 53}"
	di in smcl in gr "    Total {c |}" in ye /*
		*/ %8.0f `freqo'[_N] /*
		*/ %10.2f 100 /*
		*/ %10.0f `freqb'[_N] /* 
		*/ %10.2f 100*`freqb'[_N]/`N' /* 100 */ " " /* 
		*/ %14.2f `overp'[_N]
	local base : di "(n = " `N'
	local col = 40 - length("`base'")
	di in gr _col(`col') "(n = " in ye `N' in gr ")"
end
exit

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -