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

📄 nlogitgen.ado

📁 是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到
💻 ADO
字号:
*! version 7.0.4  04apr2005
program define nlogitgen
	version 7.0
						/* parse */
	gettoken newvar 0 : 0, parse("= ")
	confirm new var `newvar'
	gettoken equal 0 : 0, parse("= ")
	IsToken = `equal'		
	gettoken varname 0 : 0, parse(" (") match (par)
	confirm numeric var `varname'
	gettoken clist 0: 0, match(par) parse(", ")
	IsToken ( `par'
 	local k 0 	
	gettoken first clist : clist, parse(",")
	while "`first'" != "" {
		local k = `k' + 1
		local first : subinstr local first "|" " ", all
		local group`k' `first'
		gettoken comma clist : clist, parse(",")
		gettoken first clist : clist, parse(",")
	}
	if `k' < 2 {
                dis as err "two or more branches are required"
                exit 198
        }
	syntax [, noLOg]
	if "`log'" != "" { local log qui }
						/* END parsing */
						/* BEGIN generate newvar */
	tempvar tempnew
	qui gen `tempnew' = .
	local label
	forvalue i = 1/`k' {
		gettoken labnew rest : group`i', parse(":")
						/* define label
						   default `varname'`i' */
		if "`rest'" == "" {	
			local templab = substr("`newvar'", 1, 30)
			local rest `labnew'
			local label `label' `i' `templab'`i'
		}
		else  {
			local label `label' `i' `labnew'
			gettoken colon rest : rest, parse(":")
		}
		local lab : value label `varname'
		foreach x of local rest {
                        cap confirm number `x'
                        if _rc {
                                local y : dis ("`x'":`lab')
                        }
                        else local y `x'
                        qui count if `varname' == `y'
                        if r(N) == 0 {
                                dis as err "no obs for `varname' == `x'"
                                exit 198
                        }
                        qui replace `tempnew' = `i' if `varname' == `y'
                }
	}
	local labname = substr("lb_`newvar'", 1, 32)
	qui gen `newvar' = `tempnew'
	`log' dis as txt "new variable `newvar' is generated with `k' groups"
	label define `labname' `label'
	label values `newvar' `labname'
	`log' dis `"label list `labname'"'
	`log' label list `labname'
end		


program define IsToken
	args exp opt
	if "`exp'" != "`opt'" {
		dis as err "`opt' found where `exp' expected"
		exit 198
	}
end

exit
syntax

	nlogitgen newvar = varname(choicelist)

where

	choicelist := choice, choice [, choice ...]
	choice := [label:] outcome [| outcome[| outcome ...] ] 


⌨️ 快捷键说明

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