2016-05-09 9 views
0

多くのログファイルからデータをインポートしようとしています。ここに私はそれに近づいている方法:"ファイル"とローカルマクロを使用してStataでデータをインポートする際の問題

私は別のディレクトリにログファイルを持って、私はそのディレクトリ内のファイル名のリストでtxtファイルを生成します。私はそのtxtファイルを読んでから、インポートコマンドでループ内のファイル名を使用してデータを取り込みます。このプロセスは、6ヶ月前にdoファイルを最後に実行したときに機能し、今は動作しません。コードの

基本的には次のようになります。

cd "filepath\logs\" 
! dir cpuusage*.log /a-d /b /o:-d >"filepath\filelist.txt" 

file open myfile using "filepath\filelist.txt",read 
file read myfile line 

import delimited using `line', delim(" ") varnames(nonames) 

そのインポートコマンドの結果は(0 VARS、0 OBS)をfilelist.txtは14のファイル名のリストを持っているという事実にもかかわらず。

私は初心者ですので、私が見落としているシンプルで明白なことが本当にあることを期待しています。私はまだこの正確な方法が6ヶ月前に働いた理由を理解していない...どんな考え?

+0

filelist.txtのファイル名にスペースが含まれていますか?もしそうであれば、import delimitedコマンドは引用符を '' \ 'line '" 'に追加する必要があります。 –

+0

これは、 'import'コマンドが正当なものとして受け入れられたが、空のファイルが見つかったと考えていることを意味しています。あなたのファイルを見ることなくそれを理解するのは難しいです。 'import'しようとする直前に' type'を使ってファイルを入力してみてください。 –

答えて

0

私はあなたがこのためにfsを使用することができると思う:

cd "filepath\logs\" 
fs cpuusage*.log 
foreach f in `r(files)' { 
    import delimited using `f', delim(" ") varnames(nonames) 
} 

それはあなたのログファイルがどのように見えるかを知らなくても、より多くのを助けるのは難しいです。私は構文を正しく取得するために、メニューを使用して1つをインポートしようとすることをお勧めします。

+0

'fs'はSSCからのもので、使用する前に' ssc install fs'でインストールする必要があります。 –

関連する問題