如何解决使用两个foreach循环
我有两个foreach
循环:
-
是拧紧工具[1A,2A,3A,4A]
-
是放松措施[1b,2b,3b,4b](这不是完全相同的代码)。
我的回归应该同时进行1次拧紧和1次松动。我尝试包括两个循环,但是一次运行一个度量。如何同时运行每个列表的一个变量(总共四个回归)?
local MPPTD "MPP_TD CAP_TD LIQ_TD CRE_TD"
local MPPLD "MPP_LD CAP_LD LIQ_LD CRE_LD"
foreach instrument of local MPPTD {
foreach measure of local MPPLD {
xtreg `dep'`i' drate `instrument' `measure' interaction`instrument' ///
interaction`measure' `rhsvar',fe
解决方法
您希望的循环超过四种情况,因此一个循环而不是两个嵌套循环。通常,您可能会做类似
的操作 local Alist frog toad newt dragon
local Blist Harry Hermione Ron Neville
forval j = 1/4 {
* code in terms of word `j' of `Alist' and word `j' of `Blist'
}
还有其他方法可以实现。
在您的情况下,存在一个可以利用的简单结构:
local prefix MPP CAP LI CRE
foreach pre of local prefix {
* code in terms of `pre'LD and `pre'TD
}
我不反对
foreach pre in MPP CAP LI CRE {
,
尼克的答案像往常一样。 Extended macro functions是关键。对于更一般的东西,我喜欢类似以下的实现:
local MPPTD "MPP_TD CAP_TD LIQ_TD CRE_TD"
local MPPLD "MPP_LD CAP_LD LIQ_LD CRE_LD"
assert `:list sizeof MPPTD' == `:list sizeof MPPLD'
// The above line ensures the 2 locals have the same num of elements
forvalues i = 1/`:list sizeof MPPTD' {
local instrument: word `i' of `MPPTD'
local measure: word `i' of `MPPLD'
xtreg `dep'`i' drate `instrument' `measure' interaction`instrument' ///
interaction`measure' `rhsvar',fe
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。