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】%MACROはマクロを定義することができる。その5 =を使うと数を渡す引数,数を受け取る引数を指定できる。【%MEND】

今回はマクロ引数に「=」を用いる方法について解説していきたいと思います。(事前に読んでおきたい記事:【SAS】%MACROはマクロを定義することができる。その3 マクロには引数を設定できる。【%MEN …

【SAS】PUTは数値型を文字型に変換する

今回はPUTについて解説します。 /*数値8桁*/ data work.a; a = put(20061228, 8.); run; 数値型⇒文字型への変換はputを使う。数値型20061228⇒文字 …

【SAS】PROC PRINTTO LOGはログをファイルとして出力する。【NEW】

今回はPROC PRINTTO LOGについて解説します。 /* log_1 */ proc printto log = “/home/xxxxxxxxxx/sasuser.log” new; run …

【SAS】_NULL_は出力しないデータセット文を作るのに便利。

今回は_NULL_について解説します。 実は前回の記事で使用していた文法です。 【SAS】CALL SYMPUTは関数を用いてマクロ変数の代入ができる。 単元は分けた方が良いと思ったので、別記事として …

【SAS】TRIM関数は文字列の連結時に末尾のスペースを除去できる。

今回はTRIM関数について解説します。 /* trim */ data data1; Id1=1111; Char1=”AA AA”; output; Id1=2222; Char1=” BBBB”; …