我有一个包含三个变量的数据集,每个块都有不同的Sic代码。我需要为每个Sic做同样的回归:y = mq + r + d
y mq r d Sic
x x x x 1
x x x x 1
x x x x 2
x x x x 2
x x x x 3
x x x x 3
我试过这种方式,但它不起作用:
foreach i of local Sic {
reg y mq r d if Sic == `i'
}
答案 0 :(得分:1)
"不起作用"众所周知,作为错误报告没有信息。 Stata做了什么或不做什么?有错误消息吗?在什么准确的意义上你得到了你不想要的东西或者没有得到你想要的东西?
您的问题中没有任何内容表明您已经定义了一个本地宏Sic
,您的语法需要按照您的意愿工作。这是我对这个问题最强烈的猜测。
对于像你这样的例子,最简单的语法是使用statsby
或循环整数:
forval i = 1/3 {
reg y mq r d if Sic == `i'
}
然而,我们无法确定Sic
是数字而不是字符串。如果是字符串,则需要不同的语法。