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

📄 _loop_rw.ado

📁 是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到
💻 ADO
字号:
*! version 1.1.2  03jan2005
program _loop_rw
	version 9
	// NOTE:  This is a subroutine of jackknife.ado and brr.ado
	syntax namelist(min=3) ,		///
		command(string asis)		///
		express(string asis)		///
		cmd1(string asis)		///
		rwvars(varlist)			///
		owvar(varname)			///
		caller(name)			///
		postid(name)			///
		[				///
			POSTS(varname)		///
			POSTW(varname numeric)	///
			pstrwvar(varname)	///
			postextra(varlist)	///
			cmd2(string asis)	///
			noDOTS			///
			NOIsily			///
			trace			///
			reject(string asis)	///
		]
	if `"`cmd2'"' != "" {
		local cmd2 `", `cmd2'"'
	}
	if "`trace'" != "" {
		local noisily	noisily
		local traceon	set trace on
		local traceoff	set trace off
	}
	if "`noisily'" != "" {
		local dots nodots
	}
	local nodots `dots'
	if "`dots'" != "" {
		local dots "*"
		local noiqui noisily quietly
	}
	else	local dots _dots
	local K 0
	while `"`express'"' != "" {
		gettoken exp`++K' express : express,	///
			parse("()") bind match(par)
	}
	gettoken touse namelist : namelist
	gettoken subuse pseudo : namelist
	if `K' != `: word count `pseudo'' {
		local caller = lower("`caller'")
		di as err "internal error in `caller'"
		exit 9		// [sic] this should never happen
	}
	forval j = 1/`K' {
		local tv`j' : word `j' of `pseudo'
		local ppseudo `ppseudo' (`tv`j'')
		local missing `missing' (.)
	}
	local noi = cond("`noisily'"=="","*","noisily")

	local sortvars : sortedby
	tempname nobs
	local nreps : word count `rwvars'
	if "`nodots'" == "" | "`noisily'" != "" {
		di
		_dots 0, title(`caller' replications) reps(`nreps') `nodots'
	}
	local rejected 0
	if "`postextra'" != "" {
		foreach var of local postextra {
			local pextra `macval(pextra)' (`var'[\`j'])
		}
	}
	if "`posts'" != "" {
		if "`pstrwvar'" == "" {
			tempname pstrwvar
		}
		if "`postw'" == "" {
			di as err "option posts() requires the postw() option"
			exit 198
		}
		local pstr posts(`posts') postw(`postw')
	}
	forval j = 1/`nreps' {
		local wvar : word `j' of `rwvars'
		// check against original weight var , e.g:
		//		`wvar' < `owvar'
		quietly count if `wvar' != `owvar' & `subuse' == 1
		if r(N) == 0 {
			// does not affect subpop identified by `subuse'
			`dots' `j' -1
			continue
		}
		if "`posts'" != "" {
			capture drop `pstrwvar'
			svygen post double `pstrwvar' [iw=`wvar'] ///
				if `touse' == 1, `pstr'
			local wvar `pstrwvar'
		}
		`noi' di as inp `". `command'"'
		`traceon'
		capture `noiqui' `noisily'	///
			`cmd1' [iw=`wvar'] if `subuse' == 1 `cmd2'
		`traceoff'
		if (c(rc) == 1)	error 1
		local bad = c(rc) != 0
		if "`:sortedby'" != "`sortvars'" {
			sort `sortvars', stable
		}
		if c(rc) {
			`noi' di in smcl as error ///
`"{p 0 0 2}an error occurred when `caller' executed `cmdname', "' ///
`"posting missing values{p_end}"'
		}
		else {
			if `"`reject'"' != "" {
				capture local rejected = `reject'
				if c(rc) {
					local rejected 1
				}
			}
			if `rejected' {
				local bad 1
				`noi' di as error ///
`"{p 0 0 2}`caller' rejected results from `cmdname', "' ///
`"posting missing values{p_end}"'
			}
			else {
				forval i = 1/`K' {
					capture scalar `tv`i'' = `exp`i''
					if (c(rc) == 1)	error 1
					if c(rc) {
						scalar `tv`i'' = .
					}
					if missing(`tv`i'') {
						local bad 2
						`noi' di as error ///
`"{p 0 0 2}captured error in `exp`i'', posting missing value{p_end}"'
					}
				}
			}
		}
		if inlist(`bad', 1, 3) {
			post `postid' `pextra' `missing'
		}
		else {
			post `postid' `pextra' `ppseudo'
		}
		`dots' `j' `bad'
	}
	`dots' `nreps'
end
exit

⌨️ 快捷键说明

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