0

我有一个名称相似的文件列表,例如:

  • 2002_文件
  • 2003_文件
  • 2004_文件

我将运行一个简单的脚本:

foreach year in 2002 2003 2004 2005 2006 2007 2008 2009 2011 2012 2013 2014 2015 {  
use "$input\`year'_file.dta ", clear
keep v1 v2 v3
tab v1, gen (v1_dummy)
gen year = 'x'
save "$output\`year'_newfile.dta ", replace
}

但是,我想为其中一个文件创建相应的年份变量。

如何添加变量 year = 'year'

4

1 回答 1

2

您没有在x任何地方定义本地宏。

以下应该有效:

2002 年 2003 年 2004 年 2005 年 2006 年 2007 年 2008 年 2009 年 2011 年 2012 年 2013 年 2014 年 2015 年 {
    使用“$input\`year'_file.dta”,清除
    保持 v1 v2 v3
    标签 v1,gen (v1_dummy)
    创年 = `年'
    保存“$output\`year'_newfile.dta”,替换
}

仅针对特定年份:

2002 年 2003 年 2004 年 2005 年 2006 年 2007 年 2008 年 2009 年 2011 年 2012 年 2013 年 2014 年 2015 年 {
    使用“$input\`year'_file.dta”,清除
    保持 v1 v2 v3
    标签 v1,gen (v1_dummy)
    如果 `year' == 2005 gen year = `year'
    保存“$output\`year'_newfile.dta”,替换
}
于 2018-06-25T21:55:29.780 回答