【发布时间】:2018-09-08 02:16:42
【问题描述】:
我正在尝试自动化运行一系列按顺序命名的文件的过程,以相同的方式操作它们,然后保存它们。
我认为使用带有全局宏的 forvalues 循环将是在 Stata 中执行此操作的最佳方法。
我的代码是这样的:
global s=1988
forvalues i=${s}/2018 {
import excel "${s}.xlsx", sheet("Data") firstrow clear
.
.
.
save ${s}, replace
}
但是,这给了我错误:
程序错误:代码跟在大括号的同一行
Stata 似乎正在读取全局宏的大括号作为循环的开始。我尝试了不同的循环变体来解决这个问题,但无济于事。因为我在循环中使用clear,所以我不能使用本地宏,否则会进入无限循环。
【问题讨论】:
-
我不知道你在循环中间做了什么不同,但你正在保存到同一个数据集。因此,只有您最后一次导入才会有任何效果。您可能指的是不同的电子表格文件,但 1988 年并非总是如此。
标签: loops stata stata-macros