log メッセージ対処ヒント “xxは無効です。xxx列の値が欠損していない必要があります。”

断片的な情報でいつもすいません。
今回、proc sgplot で生存時間解析のfig(階段プロット)をかいていて、、群毎に1fig/1imageをだしていたら、英語版sasで実行していたのに、日本語でのWARNINGがでてきました。(sas ver 9.4)

proc sgplotの中のどのステートメントが原因かというと、打ち切りの人は”×”なり”+”なりプロットする、scatterステートメントの部分が原因でした。
階段をプロットするのは確かseriesステートメントですが、そこは無関係のようです。

WARNINGの内容↓↓↓↓
xxxは無効です。xxx列の値が欠損していない必要があります。

WARNING原因
proc sgplotがハンドルするデータセット内で、センサーかどうかを見る変数の全てのOBSが欠損の場合にこのメッセージがでたと思われます。
(1obsでも打ち切り症例をscatterステートメントで描画した群の場合、このWARNINGはでませんでした。

どうWARNINGを回避したか。
マクロ変数でscatterステートメントをする・しないを切り分けました。
proc sgplotにいれるデータセットに対し、censorの変数が全て欠損の場合はscatterステートメントをさせないようにしました。
ラフな概要です。

%if &OBS数があるかのmacro_var. = Y %then %do;
scatter ステートメント;
%end;
%else %do;
 /* 何もしません。*/
%end;

ラフにいうと、こんな感じです。。

stat programmerの皆様、日々ヘビーなお仕事お疲れさまです。

お互いがんばりましょう。(特に派遣の方^^)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です