Bookmark and Share

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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index