以下の記事を読んだ方から質問を頂きました。
「%IF条件」で「IN」を使う。
「%IF」で「^IN」を使ったら、エラーでちゃったんだけど、どうすればいい?
options minoperator mindelimiter=',' ;
%macro TEST( X= );
%if &X ^in (1,2) %then %put NOTE: マクロ変数 X は 1 と 2 じゃない;
%mend;
%TEST( X=3 );
ログ ERROR: 数値演算項が必要とされる%EVAL関数または%IF条件に、文字演算項が見つかりました。 条件: &X ^in (1,2) ERROR: マクロTESTの実行を中止します。 |
どうやら、「%IF」では「^IN」とか「NOT IN」みたいな書き方は現在(SAS9.4)対応していないようですね。
NOT演算子で囲ってあげるだけでOKです。
options minoperator mindelimiter=',' ;
%macro TEST( X= );
%if not ( &X in (1,2) ) %then %put NOTE: マクロ変数 X は 1 と 2 じゃない;
%mend;
%TEST( X=3 );
ログ
NOTE: マクロ変数 X は 1 と 2 じゃない
|
0 件のコメント:
コメントを投稿