我对stata比较新,我需要将几个.dta文件一起附加到一个数据集中。
我有一个名为2015的文件夹,文件如下所示......
jan_2015.dta
feb_2015.dta
mar_2015.dta
......等等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"
}
但是stata的输出表示file _2015.dta not found
。
答案 0 :(得分:6)
无需循环: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是文件名,但是你取消引用一个名为var的东西,它的计算结果为空,所以Stata找不到名为_2015.dta的文件并抱怨。第二个问题是你的循环似乎试图打开每个月的文件并将1月的数据附加到它。这听起来不像你的想法。