遍历全局宏

Loop through global macros

我是 Stata 的新手,我有一组变量,如:

global var1  " age sex"

global var2  "area"

global var3  "race"

我想遍历 3 个变量并应用一个函数,例如:

foreach a in $var1 $var2  $var3   { some function given `a'}

但问题是这个函数是通过 varlist 的内容一个一个地应用的,并且一个 for var1 取第一个值 age 然后 sex 当我想要它的时候采取 age sex。您对这个问题有什么见解吗?

对此有多种解决方法。可以在

中看到一个简单的
global var1 "age sex"

global var2 "area"

global var3 "race"

forval j = 1/3 { 
    di "${var`j'}"
}

您的问题引发了各种小问题:

  1. 虽然类似的项目在其他语言中会被称为变量,但全局宏在 Stata 中不被视为变量,因为变量(仅)是变量,意思是数据集中的列。

  2. 同样,你所说的函​​数在Stata中更可能是命令。命令和函数在 Stata 中不是同义词。

  3. 为了你展示的目的,使用局部宏会好很多。这是一般好的编程风格。