【问题标题】:Macros in for loop in StataStata for循环中的宏
【发布时间】:2012-11-07 02:48:02
【问题描述】:

我有局部变量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

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

【问题讨论】:

  • 本地变量 x1x2x3 是变量名的宏吗?什么是 1-9?

标签: loops local stata


【解决方案1】:

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

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

forvalue i = 1/3 {
    regress price `x`i''
}

【讨论】:

  • 我也试过那个,但我有一个x' instead of 'x。谢谢,成功了。
【解决方案2】:

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

您可以只扩展宏两次:

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'
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 2023-03-22
    相关资源
    最近更新 更多