2016年9月16日金曜日

文字欠損値の表し方 「' '」 vs 「''」


今回はちょっと細かい話。
文字欠損値を表すとき私は「''」と書きますが、「' '」というようにクォーテーションの間に空白を入れても同じ意味になります。


以下の例をご覧ください。

data X;
   A = '';
   if A=' ' then FLG=1;
run;

青字の通り、クォーテーションの間に空白を入れていますが、正しく文字欠損値として認識して処理されていることが分かります。



間に空白を入れるかどうかは基本どちらでもいいんですが、以下の場合は注意が必要です。

data Y;
   label A='aaa';
   A = 1;
run;

上記では変数Aにラベル「aaa」を設定しています。
この変数ラベルを消したいと思い、以下のように書くと、、、

data Z;
   label A='';
   set Y;
run;

「'」というラベルになってしまいます。なんでなのかよく分かりませんが、
ラベルを消したいのであれば、以下の通りクォートの間に空白を入れてあげればうまくいきます。

data Z;
   label A=' ';
   set Y;
run;



0 件のコメント:

コメントを投稿