For循环错误(语法无效)

时间:2018-07-29 00:09:01

标签: stata stata-macros

我刚刚学习了如何在Stata中使用for循环。

我尝试对数据进行此操作,以便将字符串格式的变量转换为数字变量,然后将新的数字变量移至旧的字符串格式变量旁边。

但是不知何故,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);

我想这些简单的代码片段应该可以工作,但是我不知道为什么它们会失败。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

您使用“ 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 |
     +-------------------------------------------+