Stata - 如果变量名包含在local中,则运行代码

时间:2014-04-23 08:17:24

标签: if-statement stata locals

我希望在Stata中有一个if条件,只有当该变量的名称包含在local中时,才会在某个变量的大括号中运行代码。 E.g。

if (`variable` element of `variablenames_local`) {
    gen variable2 = variable + 2
}

如何在Stata中完成?

1 个答案:

答案 0 :(得分:2)

您可以使用扩展宏函数,help extended_fcn中记录了这些函数。在这种情况下,help macrolist非常有用。 (我永远不会记住这些帮助文件的名称,而是通常键入help macrohelp local并按照该帮助文件中的链接进行操作。)

sysuse auto, clear

local vars "price mpg foreign"

foreach var of varlist _all {
    if `: list var in vars' {
        di "do something smart with `var'"
    }
}

// alternatively:
foreach var of varlist `vars' {
    di "do something smart with `var'"
}