Stata For循环错误(无效语法)
我刚刚学会了如何在Stata中为循环使用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
我在数据上尝试了这个方法,以便将字符串格式的变量转换为数字变量,然后将新的数字变量移到旧的字符串格式变量旁边
但不知怎的,斯塔塔给了我一个错误信息:
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手册是唯一严肃的文档。你可能会浪费大量时间在谷歌搜索或观看视频上。在文字字符串中可以使用成对的竖直单引号。但它们从来没有句法意义。原因是它们不能被明确地嵌套。