【问题标题】:Can I name files recursively in Stata?我可以在 Stata 中递归地命名文件吗?
【发布时间】:2021-05-01 18:54:40
【问题描述】:

从 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。有人有什么建议吗?

【问题讨论】:

  • 这里没有递归,只是简单的迭代或循环。 .

标签: loops recursion stata


【解决方案1】:

在这一行:

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

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

【讨论】:

    猜你喜欢
    • 2018-11-28
    • 2012-01-16
    • 2011-06-07
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 2014-02-07
    • 2011-11-03
    • 1970-01-01
    相关资源
    最近更新 更多