loops - 我可以在 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。有没有人有什么建议?
解决方案
在这一行:
merge 1:1 casenum using file_`n-1', keepusing (yob)
没有名为 n-1 的本地宏。这应该是 `=`n'-1'
推荐阅读
- ios - 如果我选择低于 11.0.0 的 IOS 部署目标,则构建失败
- flutter - 如何将文本字段控制器传递到按钮选择器颤动小部件
- python - 如何从所有页面获取数据?
- javascript - Javascript变量替换(CK编辑器)
- java - 下载图像,但在 kotlin 中图像的大小不正确
- python - 如何使用 Python 显示来自 Oracle 数据库的 2 字节字母?
- node.js - 在 ES5 中扩展 Node 的 EventEmitter
- kubernetes - 如何将相同的卷挂载到 kubernetes 命名空间中的所有 pod
- android - 如何在我的项目中从库中覆盖 xml 视图(使用数据绑定)(# Override_Views_Data_Binding_Android)
- javascript - 分配变量后,脚本停止工作