我刚刚学习了如何在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);
我想这些简单的代码片段应该可以工作,但是我不知道为什么它们会失败。
有人可以帮我吗?
答案 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 |
+-------------------------------------------+