Sas で coalesce 関数を使用する方法 (例付き)


SAS でCOALESCE関数を使用すると、データセット内の各行の最初の非欠損値を返すことができます。

次の例は、この関数を実際に使用する方法を示しています。

例: SAS で COALESCE を使用する方法

SAS に欠損値を含む次のデータセットがあるとします。

 /*create dataset*/
data original_data;
    input team $points rebounds assists;
    datalines ;
Warriors 25 8 7
Wizards. 12 6
Rockets. . 5
Celtics 24. 5
Thunder. 14 5
Spurs 33 19 .
Nets. . .
Mavericks. 8 10
Kings. . 9
Pelicans. 23 6
;
run ;

/*view dataset*/
proc print data = original_data; 

COALESCE関数を使用して、ポイント、リバウンド、およびアシスト列の各行の最初の非欠損値を返す新しい列を作成できます。

 /*create new dataset*/
data new_data;
    set original_data;
    first_non_missing = coalesce (points, rebounds, assists);
run ;

/*view new dataset*/
proc print data =new_data; 

SAS マージ関数の例

first_non_missing列の値がどのように選択されるかは次のとおりです。

  • 最初の行: ポイント、リバウンド、アシストのうち欠損値ではない最初の値は25でした。
  • 2 行目: ポイント、リバウンド、アシストのうち欠損値以外の最初の値は12でした。
  • 3 行目: ポイント、リバウンド、アシストのうち欠損値以外の最初の値は5でした。

等々。

注 #1 : すべての値が欠落している場合 (7 行目など)、 COALESCE関数は単純に欠落値を返します。

注 #2 : COALESCE関数は数値変数でのみ機能します。代わりに、文字変数のリストの中で欠損していない最初の値を返したい場合は、 COALESCEC関数を使用します。

追加リソース

次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。

SAS でデータを正規化する方法
SAS で文字列内の文字を置換する方法
SAS で欠損値をゼロに置き換える方法
SAS で重複を削除する方法

コメントを追加する

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