*! 1.0.2 MLB 31 Jul 2007 by default not returning dropped variables and added dropped option *! 1.0.1 MLB 23 Apr 2007 added the local and constant option *! 1.0.0 MLB 18 Apr 2007 program define indeplist, rclass version 7 syntax [, EQuation(string asis) LOcal CONStant DROPped] capture confirm matrix e(b) if _rc == 111 { di as error "Matrix e(b) not found." di as error "Indeplist requires that the active estimation command" di as error "stores its estimates in e(b)." exit 198 } tempname b local eqns : coleq e(b), quoted local eqns : list uniq eqns local k : word count `eqns' if `"`equation'"' != "" { local ok : list equation in eqns if !`ok' { di as error `"Equation `equation' not found in e(b)."' exit 198 } foreach eq of local equation { matrix `b' = e(b) matrix `b' = `b'[1,"`eq':"] local eqname: subinstr local eq " " "", all local names : colnames `b' if "`constant'" == "" { local cons "_cons" local names : list names - cons } if "`dropped'" == "" { local dropped "" foreach var of local names { if _b[`var'] == 0 & _se[`var'] == 0 { local dropped "`dropped'`var' " } } local dropped : list retokenize dropped if "`dropped'" != "" { local names : list names - dropped } } if "`names'" != "" { if `k' > 1 { di as txt "Independent variables in equation `eq': " as result "`names'" return local X`eqname' "`names'" if "`local'" != ""{ c_local X`eqname' `"`names'"' local locnames "`locnames' X`eqname'" } } else { di as txt "Independent variables: " as result "`names'" return local X "`names'" if "`local'" != "" { c_local X `"`names'"' local locnames "`locnames' X" } } } } } else { foreach eq of local eqns { matrix `b' = e(b) matrix `b' = `b'[1,"`eq':"] local eqname: subinstr local eq " " "", all local names : colnames `b' if "`constant'" == "" { local cons "_cons" local names : list names - cons } if "`dropped'" == "" { local dropped "" foreach var of local names { if _b[`var'] == 0 & _se[`var'] == 0 { local dropped "`dropped'`var' " } } local dropped : list retokenize dropped if "`dropped'" != "" { local names : list names - dropped } } if "`names'" != "" { if `k' > 1 { di as txt "Independent variables in equation `eq': " as result "`names'" return local X`eqname' "`names'" if "`local'" != "" { c_local X`eqname' `"`names'"' local locnames "`locnames' X`eqname'" } } else { di as txt "Independent variables: " as result "`names'" return local X "`names'" if "`local'" != "" { c_local X `"`names'"' local locnames "`locnames' X" } } } } } if "`local'" != "" { local locnames : list retokenize locnames c_local locnames `"`locnames'"' } end