No, not quite. David needs the labels stored to put them
back again. That's half the point of his program. Thus
the scope for simplification is much less, but there's
still a bit.
prog tablevl
version 8
syntax varlist(min=1 max=3) [if] [in] [fw aw pw iw] [, *]
local i 0
foreach v of local varlist {
local lab`++i' : var lab `v'
label var `v' `"`v': `lab`i''"'
}
cap nois table `varlist' `if' `in' [`weight' `exp'], `options'
local rc _rc
local i 0
foreach v of local varlist {
label var `v' `"`lab`++i''"'
}
if `rc' exit `rc'
end
Nick
[email protected]
Nick Cox
> tokenize `varlist'
> local i 0
> while !missing("``++i''") {
> local lab`i' : var lab ``i''
> label var ``i'' `"``i'': `lab`i''"'
> }
>
> can be boiled down to
>
> foreach v of local varlist {
> label var `v' `"`v': `: var label `v''"'
> }
David Harrison
> > > Sorry, some of my code got a little mixed up there...
> > > Corrected version
> > > below...
> > >
> > > prog tablevl
> > > version 8
> > > syntax varlist(min=1 max=3) [if] [in] [fw aw pw iw] [, *]
> > > tokenize `varlist'
> > > local i 0
> > > while !missing("``++i''") {
> > > local lab`i' : var lab ``i''
> > > label var ``i'' `"``i'': `lab`i''"'
> > > }
> > > cap nois table `varlist' `if' `in' [`weight' `exp'], `options'
> > > local rc _rc
> > > local i 0
> > > while !missing("``++i''") {
> > > label var ``i'' `"`lab`i''"'
> > > }
> > > if `rc' {
> > > exit `rc'
> > > }
> > > end
*
* 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/