1

こんにちは私は次の関数にsasでマクロを実行しようとしています

複数のsasファイル(apr12part1、apr12part2、...、aug12part1、aug12part2)があり、各ファイル(例:apr12part1)に対して、3つの出力を提供するプロセスを実行します(例:apr12part1out1、apr12part1out2、pr12part1out3) 。

私はマクロを使おうとしていましたが、あまり成功しませんでした。誰かがそれを手伝ってくれる?どうもありがとうございます!私が使っていたコードはこんな感じです

%macro test(month=,part=);
   ...FROM EC100002.&month_part_&part
   ...
   proc export data=SASUSER.Out1 outfile='G:\Output\Output1_&month_&part.csv' dbms=csv replace;
   proc export data=SASUSER.Out2 outfile='G:\Output\Output2_&month_&part.csv' dbms=csv replace;
   proc export data=SASUSER.Out3 outfile='G:\Output\Output3_&month_&part.csv' dbms=csv replace;
   run;
%mend test

%test(month = apr12、part = 1)

4

1 に答える 1

2

「ドット」を追加して、マクロ変数を完全な文字列に連結してみてください。また、一重引用符ではなく、二重引用符を使用する必要があります。このようなもの:

proc export data=SASUSER.Out1 
     outfile="G:\Output\Output1_&month._&part..csv" dbms=csv replace;

&part変数の後に2つの「ドット」があることに注意してください。1つ目は連結演算子で、2つ目はファイル名の一部です。

表示されていないコードでも同様の問題が発生している可能性があるため、それも確認してください。

于 2012-11-27T18:45:15.427 に答える