SAS忘備録の記事に乗っかったテクニックを一つ。
記事「外部ファイルをいっぺんに読み込んで連結する。」
http://sas-boubi.blogspot.jp/2014/06/blog-post.html
で複数のファイルを一括りにして、一気に読み込む方法が紹介されています。
これ、凄い便利です。
ただ、ちょっと困ったのが、データセットができあがった時に、このオブザベーションはどのファイルから読み込まれたものなんだろう?っていうのがわからないことでした。
そこで、Cドライブ下のsampleというフォルダ内にある全てのcsvファイルを読み込んで1つのデータセットにするコードを考えます。
今、TEST1.csvとTEST2.csvがフォルダ内にあって、以下の内容の場合
filename FL "C:\sample\*.csv" ;
data OUT1;
length FPATH $100.;
infile FL dsd filename=FPATH;
input A$ B$ C;
X=FPATH;
run;
とすると、結果は
となって変数Xに、由来元のファイルのフルパスが表示されます。
気づかれた方も多いかもしれませんが、このfilename=の挙動は
indsname=オプションの挙動に酷似しています。
indsname=については
「indsname オプションで、由来元のデータセット名を取得する」
http://sas-tumesas.blogspot.jp/2013/10/indsname.html
「indsname定跡」
http://sas-tumesas.blogspot.jp/2014/02/indsname.html
などを参照ください
0 件のコメント:
コメントを投稿