ファイル名をマクロに渡そうとしています。マクロは月に一度実行されるため、出力ファイルに月プレフィックスを格納しようとしています。現在のコードでは、毎月ファイル名を手動で入力する必要があります(Sep17_Sales、Oct17_Salesなど)。私はこれを自動化して、SASがデータファイルの前に月の名前を付けたファイルを生成するようにします。文字を動的にマクロに渡す
マクロ:
%macro sales (outdata = , dt =);
現在のコード
%Sales(Outdata = Sep17_Sales, dt = '2017-09-01');
%Sales(Outdata =Oct17_Sales, dt ='2017-10-01');
私のアプローチ:
私は、パラメータを渡すためにしようとすると、それはエラーをスローdata _null_;
current_date = today();
current_month = intnx('month', current_date, 0, "Begginning");
Name = "_Sales";
Result = put(current_month, monyy7.) || name;
run;
%Sales(Outdata=Result, dt='2017-10-01');
。私は結果を%Let Result
に変更し、参照番号&Result
をマクロに渡そうとしましたが、失敗します。
これを解決する方法を教えてください。すべての助けてくれてありがとう!
マクロで実際にDTパラメータの値に一重引用符が必要ですか?代わりに二重引用符を使用した場合は動作しますか? '%sales(outdata = Oct17_Sales、dt =" 2017-10-01 ");'これは生成する方がずっと簡単です。 – Tom