我使用以下forvalues循环,但它给了我错误,
forvalues i=1/22919 {
quietly replace standarisedname="`y`i''" if schoolname=="`x`i''" & missing(standarisedname)
}
类型不匹配(r(109))错误
但是当我使用复合双引号时,比如
forvalues i=1/22919 {
quietly replace standarisedname=`"`y`i''"' if schoolname==`"`x`i''"' & missing(standarisedname)
}
返回的引号错误太少
当我使用时,
forvalues i=1/22919 {
quietly replace standarisedname=""`y`i''"" if schoolname==""`x`i''"" & missing(standarisedname)
}
forvalues i=1/22919 {
quietly replace standarisedname="`"`y`i''"'" if schoolname=="`"`x`i''"'" & missing(standarisedname)
}
无效'公共'返回错误(198)。
感谢您的帮助!
答案 0 :(得分:1)
这不是一个完整的答案,但它很长,包含太多的语法作为评论。很难看出这里真正的问题是什么,因为你的例子不可重复。
这意味着您有2 x 22919个本地宏,名为y1
到y22919
和x1
到x22919
。正确?
类型不匹配意味着您引用的一个或两个变量不是字符串。请告诉我们
的结果describe schoolname standardisedname
我在第二个例子中看不到无与伦比的引号。
在你的上一个例子中
""`y`i''""
和类似的用途显然没有帮助你。嵌套""
通常没有帮助。据推测,public
是您正在使用的本地宏之一的文本的一部分。
我建议你备份并解释你想要做什么,因为我的感觉是会有一种更简单的方法。