我可以在 Stata 中递归命名文件吗?

Can I name files recursively in Stata?

我正在为 2001 年到 2010 年的每一年创建一个测试文件。我为 2001 年的文件定义了一些变量,然后,从 2002 年开始,我希望 Stata 将它与前一年的文件合并。 我的最小工作示例如下所示:

set obs 100
g year=2001
g casenum=_n
g yob=1973
save file_2001, replace

forv n=2002(1)2010{
clear
set obs 110
g casenum=_n
g year=`n'
merge 1:1 casenum using file_`n-1', keepusing (yob)
save file_`n', replace
}

我收到的错误是 file_2002.dta 未找到。有人有什么建议吗?

这一行:

merge 1:1 casenum using file_`n-1', keepusing (yob)

没有名为 n-1 的本地宏。这应该是 `=`n'-1'