use "C:\XYZ.dta",clear
global Xlist
foreach var of varlist lntoen lncap lntech lndebt {
sum `var'
gen mean`var' = r(mean)
global Xlist "$Xlist mean`var'"
}
egen Y=min($Xlist)
But you don't need to use a global for this. Nor
need you store single values in variables.
use "C:\XYZ.dta",clear
local mean = .
foreach var of varlist lntoen lncap lntech lndebt {
su `var', meanonly
if r(mean) < `mean' {
local lowest "`var'"
local mean = r(mean)
}
}
di "`var'" `mean'
Nick
[email protected]
Dev Vencappa
> is there a way to create a global list of variables that
> starts empty and successively adds new variables to the list
> as they are created? I am trying to write something like:
>
> use "C:\XYZ.dta",clear
>
> global Xlist
>
> foreach var of varlist lntoen lncap lntech lndebt{
> sum `var'
> gen mean`var'=r(mean)
> global (add the newly created variable mean`var' to $Xlist)
> }
>
> *then take the minimum of all these variables
> egen Y=min($Xlist)
>
> The reason I am trying to use a macro is because I have to
> create many variables and use the one that has the lowest
> value. This has to be done within a loop for each of several years.
>
> Any alternative approach to mine would be really appreciated.
*
* 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/