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】足し算。その3(SUM関数を用いた計算)【of】

今回はSUM関数を用いた足し算で、ofを使った計算について解説します。  (前回はSUM関数を用いた足し算について解説しました。⇒【SAS】足し算。その2(SUM関数を用いた計算) | ビジ …

【SAS】DATAステートメントは複数データセットを出力できる。

今回はDATAステートメントで複数データセットを出力する方法について解説します。 /* data2 data3_1 */ data data1 ; id1=”1111″; id2=”1111″; id …

【SAS】FORMATプロシージャはフォーマットルールを定義し、値を書き換える

今回はFORMATプロシージャについて解説します。 /* format */ data data1; 番号=”111111″; test = 10; output; 番号=”222222″; test …

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

今回はDATASETSプロシージャを使ってデータセットを削除する方法について解説します。  /* delete; */ data data1; id1=”1111″; id2=”1111″; …

【SAS】IFステートメントは処理を分岐できる。その1

今回はSASのif文について解説していきたいと思います。 【IF文の関連記事】 (明示的、暗黙的OUTPUT:【SAS】OUTPUTとDELETEの「明示的な使い方」「暗黙的な使い方」 | ビジネスイ …