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

📄 xtline.ado

📁 是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到
💻 ADO
字号:
*! version 1.1.5  21mar2005
program xtline
	version 8.2
	if (_caller() < 8.2)  version 8.1
	else		      version 8.2

	if _caller() < 9 {
		local BYOPTS BYopts(string asis)
	}
	else {
		local BYOPTS BYOPts(string asis)
	}

	syntax varlist(ts numeric) [if] [in] [,	///
		OVerlayed			/// [sic] official -overlay-
		`BYOPTS'			///
		recast(passthru)		///
		*				///
	]

	marksample touse

	// check for panel data
	_ts t i if `touse', sort panel

	if "`i'" == "" {
		di as err "xtline requires panel data"
		exit 198
	}
	quietly count if `touse'
	if r(N) == 0 {
		error 2000
	}

	markout `touse' `t' `i'
	tsrevar `varlist'
	local yvars `r(varlist)'

	_get_gropts , graphopts(`options') getallowed(addplot plot)
	local options `"`s(graphopts)'"'
	local plot `"`s(plot)'"'
	local addplot `"`s(addplot)'"'

	// check for bad option combinations
	if "`overlayed'" != "" {
		if `"`byopts'"' != "" {
			di as err ///
"options byopts() and overlay may not be combined"
			exit 198
		}
		if `:word count `varlist'' > 1 {
			di as err ///
"option overlay may not be specified with multiple variables"
			exit 198
		}
	}

	if `:word count `varlist'' == 1 {
		local ylab : var lab `yvars'
		if `"`ylab'"' == "" {
			local ylab `yvars'
		}
		local options `"ytitle(`"`ylab'"') `options'"'
	}
	else {
		local options `"ytitle("") `options'"'
	}

	// check for invalid -plopts()- option
	local 0 `", `options'"'
	syntax [, plopts(passthru) * ]
	if `"`plopts'"' != "" {
		local 0 , `plopts'
		syntax [, invalid_option ]
	}

	if "`overlayed'" != "" {
		// ordered panel id, and panel size
		tempvar id idsize
		sort `touse' `i'
		qui by `touse' `i' : gen `id' = _n==1 if `touse'
		qui replace `id' = sum(`id') if `touse'
		qui by `touse' `i' : gen `idsize' = _N if `touse'
		// number of panels
		local npanels = `id'[_N]

		// index for 1st obs of each panel
		qui count if `touse'
		local ni = _N-r(N)+1

		forval j = 1/`npanels' {
			YVarLabelOpt `i' `ni' `yvars'
			local yvarlabs `"yvarl(`s(yvarlabs)')"'
			local 0 `", `options'"'
			syntax [, plopts`j'(string asis) ///
				  PLOT`j'opts(string asis)* ]
			local ploptsA `plopts`j''
			local ploptsB `plot`j'opts'
			while `"`plopts`j''`plot`j'opts'"' != "" {
				local 0 `", `options'"'
				syntax [, plopts`j'(string asis) ///
					  PLOT`j'opts(string asis)* ]
				if `"`plopts`j''"' != "" {
				    local ploptsA `"`ploptsA' `plopts`j''"'
				}
				if `"`plot`j'opts'"' != "" {
				    local ploptsB `"`ploptsB' `plot`j'opts'"'
				}
			}
			local linecmd `linecmd'		///
			line `yvars' `t' if `id'==`j',	///
				sort			///
				`recast'		///
				`yttl'			///
				`yvarlabs'		///
				`ploptsA' `ploptsB' ||
			local ni = `ni' + `idsize'[`ni']
		}
	}
	else {
		local byopt by(`i', `byopts')
		local linecmd line `yvars' `t' if `touse', ///
			sort `recast' `byopt' `options'
		local options
	}

	if `"`options'"' != "" {
		local options `"|| , `options'"'
	}
	if `"`plot'`addplot'"' != "" {
		local plot `"|| `plot' || `addplot' || , norescaling"'
	}

	graph twoway `linecmd' `options' `plot'
end

program YVarLabelOpt, sclass
	gettoken i     0 : 0
	gettoken ni    0 : 0
	syntax varlist(ts numeric)

	local nvars : word count `varlist'

	local ival `=`i'[`ni']'
	local maxvarnamelen 8
	local maxvallen 20

	local ai = abbrev("`i'",`maxvarnamelen')

	if "`: value label `i''" == "" {
		if `nvars' == 1 {
			local yvarlabs `""`ai' = `ival'""'
		}
		else {
			foreach var of local varlist {
				local avar = abbrev("`var'",`maxvarnamelen')
				local yvarlabs ///
				`"`yvarlabs' "`avar': `ai' = `ival'""'
			}
		}
	}
	else {
		local ivlbl : label (`i') `ival'
		if `nvars' == 1 {
			local yvarlabs `""`ivlbl'""'
		}
		else {
			foreach var of local varlist {
				local avar = abbrev("`var'",`maxvarnamelen')
				local yvarlabs ///
				`"`yvarlabs' "`avar': `ivlbl'""'
			}
		}
	}

	sreturn clear
	sreturn local yvarlabs `"`yvarlabs'"'
end

exit

⌨️ 快捷键说明

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