SASはマクロコードをDATALINES
に展開しません。あなたのサンプルプログラムには必要がないことに注意してください。マクロ変数を使用して、データセット変数を設定するために必要なコードを生成するだけです。
data header;
statement_date = "&stmDate"d;
statement_due_date = "&stmDueDate"d ;
format statement_date statement_due_date date9.;
run;
しかし、あなたがそのファイルに分解ラインを変換し、そのファイルからの読み込みにPROC STREAM
を見てみましょうこれを行うにはしたくなかった場合。
マクロ変数を作成してください。
%let stmDate = 05FEB2017;
%let stmDueDate = %sysfunc(intnx(day,"&stmDate"d,20),date9.);
次に、PROC STREAMを使用してデータファイルに変換します。あなたはマクロ関数呼び出しを持つことさえできます。
filename text temp;
proc stream outfile=text; begin
&stmDate &stmDueDate
&stmDate %sysfunc(intnx(day,"&stmDate"d,20),date9.)
;;;;
次に、生成されたファイルから読み取ります。一般的に、改行は削除されるので、INPUTステートメントに@@
を使用するとよいでしょう。
data header;
infile text ;
input statement_date statement_due_date @@ ;
format _numeric_ date9.;
informat _numeric_ date9.;
run;
出典
2017-03-09 05:10:33
Tom