私は22の変数と345の観測値を持つSASにデータセットを持っています。 CliendID、クラス(不良または不良)、期間、目的、saving_status、および変数を含む変数。SASマクロ - 条件付きで結果を出力
は、私は(観測変数に対応する)は、次のすべての情報を表示する% client_typeマクロを書きたい:クライアントID、期間、目的、顧客は良好な信用を持っているSaving_status場合。顧客が良いクレジットカードでない場合(そのクラスが「悪い」の場合)、「Bad Customer」というメッセージが表示されます。
マクロ%client_statusは、パラメータ(ClientID)としてCliendIDを受け取る必要があります。
私は以下のコードを使用しますが、動作しないため、マクロ(%client_status(11254858)
)を呼び出すと出力がありません。
%macro status_client(data,ClientID);
proc sql;
select class from project3.dada_credit where ClientID = &CliendID. as Credit;
quit;
%let class = Credit;
%if &class. = "good" %then %do;
proc print data = data_credit;
var ClientID duration purpose saving_status;
run;
%end;
%else %do;
%put &ClientID. "Is a bad credit customer";
%end;
%mend status_client;
どのように修正する必要がありますか?
&クラスはどこから来ますか?あなたのテキストやコードの中では全く言及されていません。 – Reeza
"class"は私のデータセット内の変数であり、これを以下のようにマイクロ変数として定義します。私も自分のデータセットを定義しますが、私はそれについてはわかりません。 %let data = data_set; %let class = class; – Farzad
なぜマクロパラメータリストに含まれていないのですか?それは良いデザインではありません。しかし、それがどこから来るのかも明確ではありません。マクロ変数ではない変数の場合、この方法で値にアクセスすることはできません。ここで何が起こっているのか、あなたが望むものについてもっと詳しく説明する必要があります。 – Reeza