Roger Harbord
>
> Is there a way to make the dummy variables created by -xi-
> inherit their
> variable labels from the value labels of the variable in
> question? It
> seems to me this would greatly improve the readability of
> the output of
> either
> -outreg- or -reformat- after a regression command used with
> -xi-.
>
> Maybe I could write something to do this myself, but I
> can't believe
> someone hasn't done it before (but if so i've failed to findit).
>
> Below is an illustration of what happens at present. I'd
> like e.g. the
> variable label of _Iage10yr2_2 to be "25-34" (the value
> label for 2)
> instead of "Age10yr2==2".
>
> Hope that's clear..
> Thanks,
> Roger.
>
> . label list age10yr2
> age10yr2:
> 1 16-24
> 2 25-34
> 3 35-44
> 4 45-54
> 5 55-64
> 6 65-74
>
> . xi: logistic siweekT2 i.age10yr2
> i.age10yr2 _Iage10yr2_1-6 (naturally coded;
> _Iage10yr2_1
> omitted)
>
> Logit estimates Number
of obs =
> 2406
> LR
chi2(5) =
> 1.02
> Prob >
chi2 =
> 0.9609
> Log likelihood = -283.87549 Pseudo
R2 =
> 0.0018
>
> ------------------------------------------------------------
> ----------------
> siweekT2 | Odds Ratio Std. Err. z P>|z|
> [95% Conf.
> Interval]
> -------------+----------------------------------------------
> ---------------
> ---
> _Iage10yr2_2 | 1.241561 .7320912 0.37 0.714 .3908894
> 3.943504
> _Iage10yr2_3 | 1.35575 .7829916 0.53 0.598 .4371014
> 4.20511
> _Iage10yr2_4 | 1.550725 .8883524 0.77 0.444 .5045602
> 4.766025
> _Iage10yr2_5 | 1.461749 .8738824 0.64 0.525 .4528932
> 4.717909
> _Iage10yr2_6 | 1.632203 .9917213 0.81 0.420 .4961204
> 5.369842
> ------------------------------------------------------------
> ---------------
> ---
>
> . describe _I*
>
> storage display value
> variable name type format label variable label
> ------------------------------------------------------------
> ---------------
> ----
> _Iage10yr2_2 byte %8.0g age10yr2==2
> _Iage10yr2_3 byte %8.0g age10yr2==3
> _Iage10yr2_4 byte %8.0g age10yr2==4
> _Iage10yr2_5 byte %8.0g age10yr2==5
> _Iage10yr2_6 byte %8.0g age10yr2==6
>
> . reformat, eform
>
> LOGISTIC formatted output
>
> Outcome variable: siweekT2 (Suicidal in week before T2), n=2406
> ------------------------------------------------------------
> ----------------
> Covariate Odds Ratio Std. Err. P>|z| (95%
> Conf. Interval)
> ------------------------------------------------------------
> ----------------
> Age10yr2==2
> per unit 1.242 0.732 0.714
> (0.391 to 3.944)
> Age10yr2==3
> per unit 1.356 0.783 0.598
> (0.437 to 4.205)
> Age10yr2==4
> per unit 1.551 0.888 0.444
> (0.505 to 4.766)
> Age10yr2==5
> per unit 1.462 0.874 0.525
> (0.453 to 4.718)
> Age10yr2==6
> per unit 1.632 0.992 0.420
> (0.496 to 5.370)
> ------------------------------------------------------------
> ----------------
>
> . outreg using test.out
>
> . type test.out
> Suicidal in week before T2
> age10yr2==2 1.242
> (0.37)
> age10yr2==3 1.356
> (0.53)
> age10yr2==4 1.551
> (0.77)
> age10yr2==5 1.462
> (0.64)
> age10yr2==6 1.632
> (0.81)
> Observations 2406
> Absolute value of z statistics in parentheses
> * significant at 5%; ** significant at 1%
I don't know a way to do this except directly:
forval i = 2/6 {
local label : label (age10yr2) `i'
label var _I_age10yr2_`i' "`label'"
}
Once learned, you can modify according to
taste, e.g.
forval i = 2/6 {
local label : label (age10yr2) `i'
label var _I_age10yr2_`i' "age `label'"
}
Nick
[email protected]
Alternatively, this is a canned solution:
program def roger
version 7
syntax varlist, Inherit(varname)
foreach v of local varlist {
local where = index(reverse("`v'"),"_")
local value = substr("`v'",-`where' + 1,.)
local label : label (`inherit') `value'
label var `v' `"`label'"'
}
end
e.g
roger _Iage10yr2*, inherit(age10yr2)
Nick
[email protected]
*
* For searches and help try:
* http://www.stata.com/support/faqs/res/findit.html
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/