如何简化两个变量列表的循环

时间:2016-03-05 09:53:12

标签: loops regression stata

我有一个数据集,其中包含3个股票的三个时间序列观察值,以及每个股票的变量r和v。我的数据以宽泛的形式组织,即我有r1r2r3v1v2v3,时间索引t。我需要使用循环(不是statsby /其他长格式解决方案)来运行三个回归,即r1 v1r2 v2r3 v3。到目前为止,我只能编写以下内容:

tsset t
foreach r of varlist r1 r2 r3 {
  foreach v of varlist v1 v2 v3 {
    reg `r' `v'
  }
}

这显然会产生9次回归,其中只需要3次。如何简化此循环以仅运行我需要的回归?

1 个答案:

答案 0 :(得分:2)

这是一个循环,所以不要编程二。

forval j = 1/3 {
    reg r`j' v`j' 
}

诀窍是看看有什么变化:它是后缀1 2 3。每次循环都需要rv,因此可以作为常量连接到代码中。