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

📄 uselabel.ado

📁 是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到
💻 ADO
字号:
*! version 1.1.7  01feb2005
program define uselabel
	version 8

	global T_uselabel_clear
	capture noisily Uselabel_u `0'
	local rc = _rc
	nobreak {
		if "$T_uselabel_clear" != "" {
			quietly drop _all
			quietly label drop _all
		}
	}
	exit `rc'
end


program define Uselabel_u, rclass
	syntax [anything(name=lablist)] [using/] [, CLEAR REPLACE Var]

	if `"`lablist'"' == "" | `"`lablist'"' == "_all" {
		local lablist  	/* *all* value labels */
	}
	else {
		capture noi confirm name `lablist'
		if _rc {
			exit 198
		}
	}

	if "`replace'" != "" {
		local clear clear
	}
						/* parsing complete 	*/
	if "`clear'" == "" {
		qui desc, short
		if r(changed) {
			error 4
		}
	}

	if `"`using'"' != "" {
		global T_uselabel_clear TRUE
		quietly {
			drop _all
			label drop _all
			use `"`using'"' , clear
		}
	}

	if "`lablist'" != "" {
		quietly label list `lablist'	/* verify labels exists	*/
	}
	else {
		quietly label dir
		local lablist `r(names)'
	}

	if "`var'" != "" {
		capt label language
		if _rc==198 {
			local olns
		}
		else {
			local lns `r(languages)'
			local cln `r(language)'
			local olns : list lns - cln
		}

		foreach v of varlist _all {
			capt local vt : value label `v'
			if "`vt'" != "" & `:list vt in lablist' {
				return local `vt' `return(`vt')' `v'
			}

			foreach ln of local olns {
				capt local vt : char `v'[_lang_l_`ln']
				if "`vt'" != "" & `:list vt in lablist' {
					return local `vt'_`ln' `return(`vt'_`ln')' `v'
				}
			}
		}

		// use akward macro names to prevent name conflict with value labels
		return local __current_language__ `cln'
		return local __other_languages__  `olns'
		return local __labnames__         `lablist'
	}

	quietly {
		tempfile labfile
		label save `lablist' using `"`labfile'"'
		global T_uselabel_clear TRUE
		drop _all
		label drop _all

		local strlen = c(maxstrvarlen)

		local max = 100 // block size for appending obs
		set obs `max'

		gen lname = ""
		gen value = .
		gen label = ""
		gen trunc = 0

		tempname fh
		file open `fh' using `"`labfile'"', text read
		local i = 0
		file read `fh' line
		while r(eof)==0 {
			local ++i
			if `i' > `max' {
				local max = `max' + 100
				set obs `max'
			}
			gettoken word    line : line // label
			gettoken word    line : line // define
			gettoken labname line : line
			gettoken value   line : line
			gettoken ltext   line : line, parse(", ") match(paren)
			replace lname =  "`labname'" in `i'
			replace value =  `value' in `i'
			replace label =  `"`ltext'"' in `i'
			local length : length local ltext
			if (`length' > `strlen') {
				replace trunc = 1 in `i'
			}
		      	file read `fh' line
		}
		file close `fh'
		drop if _n > `i'
		if _N==0 {
			noi di as txt "(dataset has no value labels)"
			return clear
			exit
		}
		compress
		sort lname value
	}
	global T_uselabel_clear
end
exit

⌨️ 快捷键说明

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