条件マクロにデータセット変数の値を渡す方法がわかりません。のは、我々が持っているとしましょう:sasが条件マクロに変数を渡す
data HAVE;
input id name $ value ;
datalines;
1 pluto 111
2 paperino 222
3 trump 333
4 topo 444
;
run;
私が条件であれば、他の作るためにSAS conditinalマクロ内のデータセットの変数名を使用したいと思います。
options minoperator mlogic;
%macro test(var)/mindelimiter=',';
if name = &var then do;
%if &var in(pippo,pluto) %then %do "if &var"n = name; %end;
%else %do; "mod &var"n = name; end;
end;
%mend test;
が、IF名称= &:私が何を意味するか
(または、条件付きマクロ内部)
例えばoptions minoperator mlogic;
%macro test(var)/mindelimiter=',';
%if &var in(pippo,pluto) %then %do; "if &var"n = name; end;
%else %do;"mod &var"n = name;end;
%mend test;
data want;
set have;
%test(pippo);
%test(arj);
%test(frank);
%test(pluto);
%test(george);
run;
条件マクロ前に別のIF段階で、このコードを使用することですvarは常に真です...マクロ内で名前データセット変数を使用することにはいくつかの問題があります。条件付きマクロ内部のコンディショニングの
EDIT最初の答えAFTER
コード例:
%macro test(var)/mindelimiter=',';
%if &var in(pippo pluto) %then %do;
if name = 'pluto' then ifif_&var. = name;
if_&var. = name;
%end;
%else %do;
mod_&var. = name;
%end;
%mend test;
それは単なる一例コースを外れ、それはほとんど役に立たないのです。
データセットHAANTのデータを使用してデータスタンプWANTを生成するように見えます。そうであれば、別のデータステップ(通常はdata _null_ステップ)を追加し、 'CALL EXECUTE()'を使ってコードを生成するか、コードをファイルに書き出し、生成されたコードを実行するために '%INCLUDE'を使用する必要があります。 – Tom