COALESCE SAS

【SAS】COALESCEはNULLを数字に置き換える

投稿日:2021年10月12日 更新日:

今回はCOALESCEについて解説します。


/*coalesce 正常形*/
data data1;
  id="A"; chiku=1111;
    output;
  id="B"; chiku=2222;
    output;
  id="C"; chiku=3333;
    output;
  id="D"; chiku=.;
    output;
run;


data data2; set data1;
  chiku = coalesce(chiku,4444);
run;

  • coalesceはchikuがNULLのときに4444を埋める。
  • coalesceは数値型のみ使える。

/*coalesce 文字列+文字列*/
data data1;
  id="A"; chiku="SHINJUKU";
    output;
  id="B"; chiku="ICHIGAYA";
    output;
  id="C"; chiku="SHIBUYA";
    output;
  id="D"; chiku="";
    output;
run;


data data2; set data1;
  chiku = coalesce(chiku,"TOKYO");
run;

  • coalesceはchikuがNULLのときに”TOKYO”を埋めようとする?(埋められない)。
  • coalesceは数値型のみ使える。
  • chikuの文字列をNULLとして扱っている(?)
  • “TOKYO”を入れられないからNULLになった(?)

/*coalesce 文字列+数値*/
data data1;
  id="A"; chiku="SHINJUKU";
    output;
  id="B"; chiku="ICHIGAYA";
    output;
  id="C"; chiku="SHIBUYA";
    output;
  id="D"; chiku="";
    output;
run;


data data2; set data1;
  chiku = coalesce(chiku,4444);
run;

  • coalesceはchikuがNULLのときに4444を埋めようとする。
  • coalesceは数値型のみ使える。
  • chikuの文字列をNULLとして扱っている(?)
  • 全てNULLとして扱ったために、全て4444になった(?)

/*coalesce 数値+文字列*/
data data1;
  id="A"; chiku=1111;
    output;
  id="B"; chiku=2222;
    output;
  id="C"; chiku=3333;
    output;
  id="D"; chiku=.;
    output;
run;


data data2; set data1;
  chiku = coalesce(chiku,"TOKYO");
run;
  • coalesceはchikuがNULLのときに”TOKYO”を埋めようとする?(埋められない)。
  • coalesceは数値型のみ使える。
  • “TOKYO”を入れられないからNULLはNULLのまま。

-COALESCE, SAS

執筆者:


comment

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

関連記事

【SAS】SCAN関数は区切り文字を認識し、一部を抜き出せる。

今回はSCAN関数について解説します。 /* “1111”,”2222″,”3333″ */ data data1; Id1=”1111″,”2222″,”3333″; run; data data2 …

【SAS】%MACROはマクロを定義することができる。【%MEND】

今回はマクロについて解説していきたいと思います。 %macro data1; data data1 ; id1=”1111″; id2=”1111″; id3=”1111″; output; id1= …

【SAS】CALL SYMPUTは関数を用いてマクロ変数の代入ができる。

今回はCALL SYMPUTについて解説します。 /*その1*/ data data1; kyo = today(); run; today()は本日の日付をSAS日付で取得する。 /*その2*/ d …

【SAS】LIBNAMEはディレクトリパスをライブラリに割り当てる

今回はLIBNAMEについて解説します。 ちなみにSAS Base Programmingでは、LIBNAMEができないと前半の記述問題が解けません。(データセットが与えられるので、割り当てられないと …

【SAS】DATASETSプロシージャを使ってデータセットを削除する。その2【KILL】

今回はDATASETSプロシージャを使ってデータセットを削除する方法の続きを解説していきます。(前回の参考:【SAS】DATASETSプロシージャを使ってデータセットを削除する。【DELETE】 | …