如何简化两个变量列表的循环
How to simplify a loop over two variable lists
我有一个数据集,其中包含 3 只股票的三个时间序列观测值,以及每只股票的变量 r 和 v。我的数据以广泛的形式组织,即我有 r1
、r2
、r3
和 v1
、v2
、v3
,以及时间索引t
。我需要使用循环(不是 statsby
/其他长格式解决方案)来 运行 三个回归,即 r1 v1
、r2 v2
和 r3 v3
。到目前为止,我只写了以下内容:
tsset t
foreach r of varlist r1 r2 r3 {
foreach v of varlist v1 v2 v3 {
reg `r' `v'
}
}
这显然 运行s 9 个回归,其中只需要 3 个。如何将此循环简化为仅 运行 我需要的回归?
这是一个循环,所以不要编程两个。
forval j = 1/3 {
reg r`j' v`j'
}
诀窍是看看有什么不同:它是后缀 1 2 3
。每次循环都需要 r
和 v
,因此可以作为常量连接到代码中。
我有一个数据集,其中包含 3 只股票的三个时间序列观测值,以及每只股票的变量 r 和 v。我的数据以广泛的形式组织,即我有 r1
、r2
、r3
和 v1
、v2
、v3
,以及时间索引t
。我需要使用循环(不是 statsby
/其他长格式解决方案)来 运行 三个回归,即 r1 v1
、r2 v2
和 r3 v3
。到目前为止,我只写了以下内容:
tsset t
foreach r of varlist r1 r2 r3 {
foreach v of varlist v1 v2 v3 {
reg `r' `v'
}
}
这显然 运行s 9 个回归,其中只需要 3 个。如何将此循环简化为仅 运行 我需要的回归?
这是一个循环,所以不要编程两个。
forval j = 1/3 {
reg r`j' v`j'
}
诀窍是看看有什么不同:它是后缀 1 2 3
。每次循环都需要 r
和 v
,因此可以作为常量连接到代码中。