首页 > 解决方案 > 我可以在 Stata 中递归地命名文件吗?

问题描述

从 2001 年到 2010 年,我每年都创建 1 个测试文件。我为 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。有没有人有什么建议?

标签: loopsrecursionstata

解决方案


在这一行:

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

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


推荐阅读