0

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

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

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

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

有人可以帮我吗?

4

1 回答 1

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 |
     +-------------------------------------------+
于 2018-07-29T00:27:52.780 回答