SAS DI Studio内でカスタム変換を作成して、頻繁に再利用したい複雑な処理を行っています。これを達成するために、最初のステップとして、単純なAPPEND変換の機能を再現しようとしています。番号の付いたマクロ変数でSAS SET文を使用する
この目的のために、複数入力(最大10個)を有効にしてhereというマクロ変数&_INPUTn
と&_INPUT_count
を利用しようとしています。マクロ変数は、名前がない、彼らはを参照して、データセットの名前に解決されるので
ERROR: Missing numeric suffix on a numbered data set list (WORK.SOME_INPUT_TABLE-WORK.ANOTHER_INPUT_TABLE)
:私はしかし、私は次のエラーが表示され、単純にコード
data work.APPEND_DATA/view=work.APPEND_DATA;
%let max_input_index = %sysevalf(&_INPUT_count - 1,int);
set &_INPUT0 - &&_INPUT&max_input_index;
keep col1 col2 col3;
run;
を使用したいです
SET dataset1 - dataset9;
ステートメントに必要な形式に従ってください。どうすればこの問題を回避できますか?
多くの感謝です。
とにかくループを張って追加する場合は、proc appendを使ってループすることをお勧めします。データサイズによっては、データを1行ずつ処理しないため、処理速度が向上します。 – Reeza
さて、私はそのアプローチを検討します。私は当初、SAS DI premade変換を使用して追加を構築しました。その後、ジョブコードをカスタム変換に変換するときに、自動生成されたコードを貼り付けてコピーしました。なぜSASがproc appendよりもむしろこのようなやり方をしているのか分かりませんが、私は効率化のために努力します! – Rookatu