Stata For循环错误(无效语法)

Stata For循环错误(无效语法),stata,stata-macros,Stata,Stata Macros,我刚刚学会了如何在Stata中为循环使用 我在数据上尝试了这个方法,以便将字符串格式的变量转换为数字变量,然后将新的数字变量移到旧的字符串格式变量旁边 但不知怎的,斯塔塔给了我一个错误信息: foreach var of varlist city zipcode { encode 'var', gen(_'var') order _'var', after('var') } ' invalid name r(198); 我还尝试了以下方法: foreach varlist in city z

我刚刚学会了如何在Stata中为循环使用

我在数据上尝试了这个方法,以便将字符串格式的变量转换为数字变量,然后将新的数字变量移到旧的字符串格式变量旁边

但不知怎的,斯塔塔给了我一个错误信息:

foreach var of varlist city zipcode {
encode 'var', gen(_'var')
order _'var', after('var')
}

' invalid name
r(198);
我还尝试了以下方法:

foreach varlist in city zipcode {
encode 'varlist', gen(_'varlist')
order _'varlist', after('varlist')
}

invalid syntax 
r(198);
我想这些简单的代码片段应该可以工作,但我不知道它们为什么会失败


有人能帮我一下吗?

您正在使用“var”而不是“var”来引用本地宏:

clear
set obs 5

generate city = string(runiform())
generate zipcode = string(runiform())

foreach var of varlist city zipcode {
    encode `var', gen(_`var')
    order _`var', after(`var')
}

list

     +-------------------------------------------+
     |     city      _city    zipcode   _zipcode |
     |-------------------------------------------|
  1. | .2047095   .2047095   .3913819   .3913819 |
  2. | .8927587   .8927587   .1196613   .1196613 |
  3. | .5844658   .5844658   .7542434   .7542434 |
  4. | .3697791   .3697791   .6950233   .6950233 |
  5. | .8506309   .8506309   .6866152   .6866152 |
     +-------------------------------------------+

@嗨,是的。你说得对。成功了!非常感谢你。我能再问一个问题吗?我参考了youtube上的视频、教科书和互联网上的资料,但他们从未告诉我这一点(也许他们认为这是默认的先验知识?)。所以我的问题是,在Stata中使用for循环时,我是否必须始终使用'something'而不是'something'。您必须始终使用''而不是''调用本地宏。无论您是否处于
for
循环中,这都是正确的。我强烈建议您阅读Stata宏上的。毫不妥协的建议:如果您认真对待Stata编程,Stata手册是唯一严肃的文档。你可能会浪费大量时间在谷歌搜索或观看视频上。在文字字符串中可以使用成对的竖直单引号。但它们从来没有句法意义。原因是它们不能被明确地嵌套。