4

我有x1 , x2, and x3如下局部变量

local x1 2 3 5
local x2 5 9 7
local x3 1 3 4

现在我定义local x

local x `x1' `x2' `x3' 

接下来,我将 for 循环定义为

 foreach var of varlist `x'{
    reg y `var'}

问题是stata给了我错误(注意y是因变量)

invalid name

在这方面的任何建议都将受到高度赞赏。

4

2 回答 2

6

我认为宏是“延迟输入”。这是我使用的方法。

sysuse auto, clear
local x1 weight
local x2 headroom trunk
local x3 length turn

forvalue i = 1/3 {
    regress price `x`i''
}
于 2012-11-07T04:27:41.447 回答
3

假设这些是变量,理查的解决方案显然会奏效。但是,即使没有必要,它也要求您重命名所有宏。

您可以只扩展宏两次:

local x x1 x2 x3
foreach var of local x {
   reg y ``var''
}

你也可以这样做,但如果你的变量列表太长,你会遇到问题:

local x "`x1'" "`x2'" "`x3'" 
foreach var of local x {
  reg y `var'
}
于 2012-12-21T17:40:18.377 回答