2016-09-09 7 views
0

私は比較的新しいスタータです。複数の.dtaファイルを1つのデータセットに追加する必要があります。複数の.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と言いました。

答えて

3

ループする必要はありません:あなたはまだいくつかの理由のための名前でファイルをループに熱望している場合

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

appendあなたがfsを得ることができるファイルのリストを取ることができ

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という名前のファイルを見つけることができず、文句を言います。 2番目の問題は、ループが毎月のファイルを開き、1月のデータをそのファイルに追加しようとしているように見えることです。それは、あなたが心に留めているようには聞こえません。

+0

@nabilahこの情報は役に立ちましたか? –

+0

こんにちはDimitriy、これは完全に動作します。どうもありがとうございました! – nabilah

+0

@nabilah次に、左側のチェックマークを使用して答えとして選択してください。 –

関連する問題