我讨厌用这个问题惹恼你们,但是我收到错误“{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)
}
}
}
非常感谢你的帮助!
答案 0 :(得分: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”中的引号。