Часть имени файла как переменная - PullRequest
0 голосов
/ 26 июня 2018

У меня есть список файлов с похожими именами, например:

  • 2002_file
  • 2003_file
  • 2004_file

IЯ собираюсь запустить простой скрипт:

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'?

1 Ответ

0 голосов
/ 26 июня 2018

Вы нигде не определяете локальный макрос 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)
    <b>gen year = `year'</b>
    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)
    <b>if `year' == 2005 gen year = `year'</b>
    save "$output\`year'_newfile.dta ", replace
}
...