Loops 循环以附加几个.dta文件

Loops 循环以附加几个.dta文件,loops,append,stata,Loops,Append,Stata,我对stata比较陌生,需要将几个.dta文件附加到一个数据集中 我有一个名为2015的文件夹,文件如下所示 jan_2015.dta feb_2015.dta mar_2015.dta 。。。等等,直到2015年12月 我尝试了以下代码: cd C:\Users\TOSHIBA\Desktop\Lender_List\Compiled\2015 local mylist jan_2015 feb_2015 mar_2015 apr_2015 may_2015 jun_2015 jul

我对stata比较陌生,需要将几个.dta文件附加到一个数据集中

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

jan_2015.dta 
feb_2015.dta 
mar_2015.dta 
。。。等等,直到2015年12月

我尝试了以下代码:

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"
}

但是stata的输出表明,
file\u 2015.dta未找到

无需循环:
append
可以获取使用
fs
可以获取的文件列表:

ssc install fs
cd C:\Users\TOSHIBA\Desktop\Lender_List\Compiled\2015
clear
fs *_2015.dta
append using `r(files)'
如果出于某种原因仍希望按名称循环文件:

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

代码的主要问题是本地宏lname是filename,但您取消了对var的引用,var的计算结果为nothing,因此Stata找不到名为_2015.dta的文件并发出投诉。第二个问题是,您的循环似乎试图打开每个月的文件并将一月的数据附加到其中。这听起来不像你想的那样。

@nabilah这有帮助吗?嗨,Dimitry,这很好用。多谢各位@纳比拉,然后请用左边的复选标记选择它作为答案。