You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

235 lines
6.4 KiB
Plaintext

* spex - version 1.3.1 - fix rologit case2alt bug 25Oct2005
* spex - version 1.3.0 - add asmprobit 08Sep2005
* spex - version 1.2.10 - case2alt modification 11Jul2005
* spex - version 1.2.9 - case2alt 11jul2005
* spex - version 1.2.8 - change directory for spex_data 11Jul2005
* spex - version 1.2.7 - revise misschk 06Jul2005
capture program drop spex
program define spex
** USERS: TO HAVE SPEX SEARCH SOMEWHERE OTHER THAN YOUR WORKING DIRECTORY
** FOR DATA, ENTER THE PATH IN THE QUOTES BELOW (WINDOWS: USE / AS SEPARATOR)
* local userpath "C:/~ToSync/~Projects/stata/spostdata/" // example
local userpath ""
syntax namelist(id="dataset or command") [, Web User Jsl *]
tokenize "`namelist'"
* unabbreviate command
capture _optname , `1'
local cmddta = r(opt)
if "`cmddta'"=="." {
local cmddta = "`1'"
}
local default = "web"
*local default = "jsl"
** SET DIRECTORY WHERE DATA IS STORED
if "`web'" == "web" | ///
("`jsl'"== "" & "`user'" == "" & "`default'" == "web") {
* local where "http://www.stata-press.com/data/lfr/"
local where "http://www.indiana.edu/~jslsoc/stata/spex_data/"
}
if "`user'" == "user" | ///
("`jsl'"== "" & "`web'" == "" & "`default'" == "user") {
local where "`userpath'"
}
if "`jsl'" == "jsl" | ///
("`user'"== "" & "`web'" == "" & "`default'" == "jsl") {
local where "c:\spostdata/"
}
** SPECIFY SYNTAX OF MODEL IF MODEL IS SPECIFIED
if "`cmddta'" == "asmprobit" {
local data travel2
local cmd "asmprobit choice time invc, case(id) alternatives(mode) `options'"
}
if "`cmddta'" == "clogit" {
local data travel2
local cmd "clogit choice train bus time invc, group(id) `options'"
}
if "`cmddta'" == "cloglog" {
local data binlfp2
local cmd "cloglog lfp k5 k618 age wc hc lwg inc, `options'"
}
if "`cmddta'" == "cnreg" {
local data nels_censored2
local cmd "cnreg testscor bymomed bydaded black hispanic, censored(censor) `options'"
}
if "`cmddta'" == "intreg" {
local data nels_censored2
local cmd "intreg minscor maxscor bymomed bydaded black hispanic, `options'"
}
if "`cmddta'" == "logit" {
local data binlfp2
local cmd "logit lfp k5 k618 age wc hc lwg inc, `options'"
}
if "`cmddta'" == "misschk" {
local data gsskidvalue2
*local cmd "misschk year-income91, help"
local cmd ///
"misschk age anykids black degree female kidvalue othrrace year income91 income, help gen(m_) dummy"
}
if "`cmddta'" == "mlogit" {
local data nomocc2
local cmd "mlogit occ white ed exper, `options'"
}
if "`cmddta'" == "mprobit" {
local data nomocc2
local cmd "mprobit occ white ed exper, `options'"
}
if "`cmddta'" == "nbreg" {
local data couart2
local cmd "nbreg art fem mar kid5 phd ment, `options'"
}
if "`cmddta'" == "ologit" {
local data ordwarm2
local cmd "ologit warm yr89 male white age ed prst, `options'"
}
if "`cmddta'" == "oprobit" {
local data ordwarm2
local cmd "oprobit warm yr89 male white age ed prst, `options'"
}
if "`cmddta'" == "poisson" {
local data couart2
local cmd "poisson art fem mar kid5 phd ment, `options'"
}
if "`cmddta'" == "probit" {
local data binlfp2
local cmd "probit lfp k5 k618 age wc hc lwg inc, `options'"
}
if "`cmddta'" == "regress" | "`cmddta'" == "reg" {
local data regjob2
local cmd "regress job fem phd ment fel art cit, `options'"
}
if "`cmddta'" == "rologit" {
local data wlsrnk
local precmd1 `"label variable value1 "est""'
local precmd2 `"label variable value2 "var""'
local precmd3 `"label variable value3 "aut""'
local precmd4 `"label variable value4 "sec""'
local precmd5 "case2alt, yrank(value) case(id) alt(hashi haslo) casevars(fem hn) gen(rank)"
local cmd "rologit rank est* var* aut* hashi haslo, group(id) reverse"
}
if "`cmddta'" == "slogit" {
local data ordwarm2
local cmd "slogit warm yr89 male white age ed prst, `options'"
}
if "`cmddta'" == "tobit" {
local data tobjob2
local cmd "tobit jobcen fem phd ment fel art cit, ll(1)"
}
if "`cmddta'" == "zinb" {
local data couart2
local cmd "zinb art fem mar kid5 phd ment, inf(fem mar kid5 phd ment) `options'"
}
if "`cmddta'" == "zip" {
local data couart2
local cmd "zip art fem mar kid5 phd ment, inf(fem mar kid5 phd ment) `options'"
}
if "`cmddta'" == "ztnb" {
local data couart2
local cmd "ztnb art fem mar kid5 phd ment if art > 0, `options'"
}
if "`cmddta'" == "ztp" {
local data couart2
local cmd "ztp art fem mar kid5 phd ment if art > 0, `options'"
}
if "`cmd'" == "" {
local data "`cmddta'"
}
** LOAD DATAFILE
di _n in white `". use "`where'`data'.dta", clear"'
capture use "`where'`data'", clear
if _rc != 0 {
di _n in green "(trying alternate location for file)"
di _n in white `". sysuse "`data'.dta", clear"'
capture sysuse `data'.dta, clear
if _rc != 0 {
di as err `"program cannot confirm dta file `data' on path `where'"'
error 999
}
}
** EXECUTE COMMAND
* are there commands to be executed before the command?
local i = 1
while `"`precmd`i''"' != "" {
di in white `". `precmd`i''"'
`precmd`i''
local i = `i' + 1
}
if "`cmd'" != "" {
if substr("`cmd'", -2, .) == ", " {
local trim = length("`cmd'") - 2
local cmd = substr("`cmd'", 1, `trim')
}
di _n in white ". `cmd'"
`cmd'
}
end
capture program drop _optname
program define _optname, rclass
version 8
syntax , [BINlfp2 ORDwarm2 REGress LOGit MLOGit OLOGit NOMocc2]
foreach d in binlfp2 ordwarm2 regress logit ///
mlogit ologit nomocc2 {
if "``d''"=="`d'" {
local opt = "`d'"
}
}
return local opt "`opt'"
end