Stata 错误:;太多';)';或';]';使用foreach循环时

Stata 错误:;太多';)';或';]';使用foreach循环时,stata,Stata,当我在Stata中使用foreach循环时,我被一条奇怪的错误消息弄糊涂了 我从一个数据集中收集了几个地名的名称列表,并将它们放在三个本地名中:县,市,市政。然后,我将它们与另一个数据集中的某些名称(parkname)进行“匹配” 前两个运行良好,但对于最后一个本地宏muni,foreach失败并抛出一条奇怪的错误消息。但是,正如您所看到的,我没有在循环体中添加太多的括号:只有两个 那么问题的根源是什么呢?我高度怀疑它源于我构造最后一个局部变量的方式,但我无法找出问题所在 顺便说一句,city1

当我在Stata中使用
foreach
循环时,我被一条奇怪的错误消息弄糊涂了

我从一个数据集中收集了几个地名的名称列表,并将它们放在三个本地名中:
市政
。然后,我将它们与另一个数据集中的某些名称(
parkname
)进行“匹配”

前两个运行良好,但对于最后一个本地宏
muni
foreach
失败并抛出一条奇怪的错误消息。但是,正如您所看到的,我没有在循环体中添加太多的括号:只有两个

那么问题的根源是什么呢?我高度怀疑它源于我构造最后一个局部变量的方式,但我无法找出问题所在

顺便说一句,
city1
city4
指的是四个城市名称的中文字符(Unicode),但由于堆栈溢出不允许使用Unicode字符,所以我将它们替换。我不确定这一事实是否与错误消息有关

import excel province=A city=B county=C using geonamelist.xlsx, clear
*-------------------------
*  city and county list
*-------------------------
qui levelsof county   , local(county)
qui levelsof city     , local(city)
** the municipalities are classified as provincial unit
local muni "city1" "city2" "city3" "city4"

*--------------------------
*   Industry Park data
*--------------------------
// Import industry park namelist
import excel order=A province=C class=D parkname=E area_NDRC=F  ///
area_MLR=J batch=I using namelist1.xls, clear

drop in 1/1
tempfile provincial
save "`provincial'"

import excel order=A province=C class=D parkname=E area_NDRC=F  ///
area_MLR=J batch=I using namelist2.xls,clear

drop in 1/1
append using "`provincial'"



** Matching the county names
gen county = ""
foreach i of local county {
    qui replace county = "`i'"     if strpos(parkname,"`i'")>0
}
gen city   = ""
foreach i of local city   {
    qui replace city  =  "`i'"     if strpos(parkname,"`i'")>0
}
foreach i of local muni   {
    qui replace city  =  "`i'"     if strpos(parkname,"`i'")>0
}

sort order

这里的任何内容我们都无法复制,因为您的示例依赖于我们没有的文件。不幸的是,我和(我怀疑)这里很多最活跃的Stata用户都不会阅读或说中文

正如你所说,在语法上没有明显的区别

不过,我不建议这样做:

. local muni "city1" "city2" "city3" "city4"

. mac li
<other stuff listed here> 
_muni:          city1" "city2" "city3" "city4

所以我唯一的猜测是你得到的信息是宏定义的副作用

谢谢,尼克,这正是我问题的根源。
local muni `" "city1" "city2" "city3" "city4" "'