複数のExcelファイルを単一のsasデータセットにインポートするためにオンラインで見つかったマクロを使用しています。そしてそれはとてもうまくいく。しかし、私はまた、1つの変数 "プレート"を追加して各Excelファイルを指定したいとします。ここではマクロは次のとおりです。インポート後、追加前に変数を追加
%macro MultImp(dir=,range=,out=,n=);
%let rc=%str(%'dir %")&dir.%str(\%" /A-D/B/ON%');
filename myfiles pipe %unquote(&rc);
data list;
length fname $256.;
infile myfiles truncover;
input myfiles $100.;
fname=quote(upcase(cats("&dir",'\',myfiles)));
out="&out";
drop myfiles;
call execute('
%do i=1 %to &n.;
proc import dbms=xlsx out= _test
datafile= '||fname||' replace ;
range="&range";
run;
data _test;
set _test;
plate=&i;
run;
proc append data=_test base='||out||' force; run;
proc delete data=_test; run;
%end;
');
run;
filename myfiles clear;
%mend;
%MultImp(dir=U:\test,range=summary$.D10:Y200,out=test,n=30);
私はcall execute
の内部で行うループを書いた、とproc import
後に小さなデータのステップを実行しますが、proc append
の前に。それは動作しません。どのようにデータセットを追加する前にこの変数を追加することができます誰も考えていることができます。 ありがとうございます。
優秀!どうもありがとうございました!!! – lxcfuji