1

既に定義されている SAS MACRO のパラメーターを解決する方法を探しています。セッションで定義されたマクロ (WORK.SASMACR/WORK.SASMAC1) の場所はわかっていますが、さらに一歩進んでそのパラメーターを決定したいと考えています。たとえば、次のようになります。

%macro test(val1, val2);
   %put &val1 &val2;
%mend test;


/* With proc catalog I can find the defined macro... */
proc catalog cat=work.SASMAC1;
   contents out=macros;
run;

/* How to create function/macro which takes the macro name and returns its arguments, eg:*/
%resolveMacroParams(test);
/* ...returns: */
val1 val2

どんな助けでも大歓迎です!

敬具、ハーマン

4

2 に答える 2

2

これは、マクロが SOURCE オプションを指定してコンパイルされた場合に実行できます。以下は、簡単に引数を取得できるマクロ テキストを含むデータセットを提供します。

libname dummy 'c:\temp\';
options mstored sasmstore=dummy;
%macro test(val1, val2)/store source;
   %put &val1 &val2;
%mend test;
filename mymacr temp;
%copy TEST/lib=dummy source out=mymacr;

data test;
infile mymacr truncover;
input @1 line $100.;
run;
于 2013-10-25T14:03:03.517 に答える