循环以附加几个.dta文件

nab*_*lah 1 loops append stata

我对stata比较新,我需要将几个.dta文件一起添加到一个数据集中.

我有一个名为2015的文件夹,文件如下所示......

jan_2015.dta 
feb_2015.dta 
mar_2015.dta 
Run Code Online (Sandbox Code Playgroud)

......等等dec_2015.

我尝试了以下代码:

cd C:\Users\TOSHIBA\Desktop\Lender_List\Compiled\2015

local mylist jan_2015 feb_2015 mar_2015 apr_2015 may_2015 jun_2015 jul_2015 aug_2015 sep_2015 oct_2015 nov_2015 dec_2015

foreach filename of local mylist {
  use `var'_2015
  append using "jan_2015.dta"
}
Run Code Online (Sandbox Code Playgroud)

但是stata的输出说file _2015.dta not found.

Dim*_*rov 6

没有必要循环:append可以获取您可以获得的文件列表fs:

ssc install fs
cd C:\Users\TOSHIBA\Desktop\Lender_List\Compiled\2015
clear
fs *_2015.dta
append using `r(files)'
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因仍然急于按名称循环文件:

cd C:\Users\TOSHIBA\Desktop\Lender_List\Compiled\2015
clear
foreach filename in `=lower("`c(Mons)'")' {
 append using "`filename'_2015.dta"
}
Run Code Online (Sandbox Code Playgroud)

你的代码的主要问题是本地宏lname是文件名,但你取消引用一个名为var的东西,它的计算结果为空,所以Stata找不到名为_2015.dta的文件并抱怨.第二个问题是你的循环似乎试图打开每个月的文件并将1月的数据附加到它.这听起来不像你的想法.