Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: st: Referring to elements of a varlist in a program
From
"Nick Cox" <[email protected]>
To
<[email protected]>
Subject
RE: st: Referring to elements of a varlist in a program
Date
Fri, 9 Jul 2010 17:21:45 +0100
Other ways to do
token `varlist' //added//
qui su `2' /* changed */
are
local y : word 2 of `varlist'
qui su `y'
and
qui su `: word 2 of `varlist''
Nick
[email protected]
Eric Booth
You were close, just a few minor fixes. The trick in choosing the first
or second variable in the `varlist' is to use -tokenize- :
**********!
cap program drop example //added//
program example, rclass
version 10.0
syntax varlist(min=2 max=2 numeric) /* changed */
loc m=0
foreach v of local varlist { /* changed */
qui su `v',mean
loc m=`m'+`r(mean)'
}
//second variable in varlist only //
token `varlist' //added//
qui su `2' /* changed */
local sd = `r(sd)'
local final = `m' / `sd'
**drop m sd //these aren't vars--you don't need to drop them//
return local final = `final'
di as txt "Final result is: `final'" //added//
end
webuse auto, clear
example price mpg
**these should fail**
example price //too few vars
example rep78 price mpg for //too many vars
example rep78 make //fails b/c non-numeric string
**********!
On Jul 8, 2010, at 10:57 PM, Dani Tilley wrote:
> program example, rclass
> version 10.0
> syntax varlist(min=2 max2)
>
> loc m=0
> foreach v of varlist `varlist' {
> qui su `v',mean
> loc m=`m'+`r(mean)'
> }
>
> qui su varlist[2] ///I don't know how to refer to this
> local sd = `r(sd)'
> local final = `m' / `sd'
> drop m sd
> return local final = `final'
>
> end
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/