3

我不想用这个问题惹恼你们,但我收到错误“{ required”,即使我的所有循环似乎都正确打开(和关闭),不幸的是,Stata 没有告诉你错误在哪里,所以我可以不知道为什么会这样。顺便说一句,如果我用 if 语句取出 append_replace 部分,我仍然会遇到同样的错误,所以我认为它不是来自那个部分。这是我的代码:

local vars = "any_rate resp_rate circ_rate weight_rate diabetes_rate gallstones_rate   mental_rate cancer_rate std_rate died_rate"
local dates = "1947 1974"
foreach var of local `vars' {
    foreach i of local `dates' {
        forvalues j = 500(100)2500 {
            local append_replace = "append"
            if "`var'"=="any_rate" {
                if "`i'" == "1947" {
                    if `j' == 500 {
                        local append_replace = "replace"
                    }
                }
            }
            reg `var' post`i' dobdistfrom`i'change dobdistfrom`i'changesq post`i'_dist`i' post`i'_dist`i'sq if dobdistfrom`i'change < `j' & dobdistfrom`i'change > -`j', cluster(dobdistfrom`i'change)
                outreg2 using Prelim_RD_Estimates.xls, `append_replace' excel dec(3)
        }
    }
}

非常感谢你的帮助!

4

1 回答 1

4

我相信问题出在本地阻止 { 被读取。

原始有问题的版本:

local dates = "1947 1974"
foreach i of local `dates' {
  di `i'
  }

修正版:

local dates = "1947 1974"     
foreach i in `dates' {
   di `i'
   }

您也可以在原始构造中省略“foreach i of local dates”中的引号。

于 2013-07-12T03:22:34.577 回答