2016-10-31 18 views
0

私はいくつかの入力マクロを持つSASマクロ関数をいくつか書きました。のは、この機能があることを、この例のために言ってみましょう:私は何をしたいことは、この機能であれば呼び出しのシーケンスが含まれています別のファイルを作成するためにファイル内のデータに基づいてSASコードを生成し実行する

%macro add(dataset,column,number); 
data &dataset; 
    set &dataset; 
    &column = &column + &number; 
run; 
%mend; 

%macro multiply(dataset,column,number); 
data &dataset; 
    set &dataset; 
    &column = &column * &number; 
run; 
%mend; 

です。コンテンツの例は、次のとおりです。

  • add、work.tmp、value、3;
  • add、work.tmp、value2,5;
  • multiply、work.tmp、value、2;
  • ...

は、あなたは私のすべてのコールこのシーケンスを実行するための最良の方法をアドバイスをしてくださいことはできますか?このファイルに基づいてSASコードを生成し、それを実行するマクロを正しく作成する必要がありますか?それとも簡単な方法がありますか?

+0

「sas data-driven programming」のグーグルグーグルを試してみてください。これは、一般的に、このようなことについてもっと詳しく説明します。 – user667489

答えて

0

最も簡単な方法は、マクロを呼び出す別のSASプログラムを作成することです。あなたのサンプルファイルはこれに非常に近いです。それぞれのパラメータの行を%add()または%multiply()で囲みます。

もう1つの手法は、命令ファイルを読み込んで構文解析し、呼び出すために繰り返し実行するexecute文を作成するデータステップを記述することですあなたのマクロ。

関連する問題