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: Referencing individual elements of (local) macros
From
Nick Cox <[email protected]>
To
"'[email protected]'" <[email protected]>
Subject
RE: st: Referencing individual elements of (local) macros
Date
Fri, 3 Dec 2010 12:31:52 +0000
Also check out -tokenize- and a discussion in
SJ-3-2 pr0009 . . . . . . . . . . . . . Speaking Stata: Problems with lists
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox
Q2/03 SJ 3(2):185--202 (no commands)
discusses ways of working through lists held in macros
Nick
[email protected]
Sergiy Radyakin
I salute your intent to use arrays for that: indeed you can do it with
arrays. Many statalisters
prefer variable lists instead. Given that you want only one var from
each list, just extract it
as a word by its index. See below.
If you are doing any data mining/optimal model search, investigate
further, e.g. see -bestreg-
by Zurab Sajaia:
net from http://adeptanalytics.org/download/ado/
sysuse auto
local depvars "price weight length"
local controlvars "rep78 foreign mpg"
local n_models : word count `depvars'
assert `n_models'==`:word count `controlvars'' // this ensures that
the two lists are of the same length
forval i=1/`n_models' {
local this_depvar `: word `i' of `depvars''
local this_controlvar `:word `i' of `controlvars''
regress `this_depvar' `this_controlvar'
}
On Thu, Dec 2, 2010 at 4:03 PM, miros lav
> I am wondering whether it is possible to reference the individual
> elements of a (local) macro by a number. For example, if I have the
> local macro x "var1 var2 var3". How would something like reg y `x'[3]
> work.
>
> Long explanation:
>
> I would like to estimate a number of models with different dependent
> and independent variables. The control variable varies with the
> dependent variable. I would like to use some kind of loop structure
> (since I want to do a lot of estimations). so, I have defined two
> macros. Lets say that they each have three elements.
>
> local depvars " depvar1 depvar2 depvar3"
> local controlvars " controlvar1 controlvar2 controlvar3"
>
> I would like to do something like that
>
> i=1
> foreach c of local depvar{
> reg `c' `controlvars'[i]
> i++
> }
>
> Thanks for your help!
*
* 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/