文件名的一部分作为变量

时间:2018-06-25 21:47:27

标签: variables stata stata-macros

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

  • 2002_file
  • 2003_file
  • 2004_file

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

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 = 'year'

1 个答案:

答案 0 :(得分:2)

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

以下方法应该起作用:

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 = `year'
    save "$output\`year'_newfile.dta ", replace
}

仅在特定年份:

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)
    if `year' == 2005 gen year = `year'
    save "$output\`year'_newfile.dta ", replace
}