Sas で欠損値をゼロに置き換える方法
多くの場合、SAS データセット内の欠損値をゼロに置き換えたい場合があります。
幸いなことに、これは単純なif thenステートメントを使用して簡単に実行できます。
次の例は、実際に欠損値をゼロに置き換える方法を示しています。
例 1: すべての列の欠損値を置換する
SAS に次のデータセットがあり、それぞれに欠損値がある 3 つの列があるとします。
/*create dataset*/ data my_data; input xyz; datalines ; 1. 76 2 3 . 2 3 85 4 5 88 2 2 . 1 2 69 5. 94 4 1 . . . 88 4 3 92 ; run ; /*view dataset*/ proc print data =my_data;
次のコードを使用して、データセットの各列の欠損値をゼロに置き換えることができます。
/*create new dataset with missing values replaced by zero*/
data my_data_new;
set my_data;
array variablesOfInterest _numeric_ ;
do over variablesOfInterest;
if variablesOfInterest=. then variablesOfInterest= 0 ;
end ;
run ;
/*view new dataset*/
proc print data =my_data_new;
各列の欠損値はゼロに置き換えられていることに注意してください。
注: _numeric_引数は、データセット内の各数値列の欠損値をゼロに置き換えるよう SAS に指示します。
例 2: 特定の列の欠損値を置換する
もう一度、SAS に次のデータセットがあり、各列に欠損値がある 3 つの列があると仮定します。
/*create dataset*/ data my_data; input xyz; datalines ; 1. 76 2 3 . 2 3 85 4 5 88 2 2 . 1 2 69 5. 94 4 1 . . . 88 4 3 92 ; run ; /*view dataset*/ proc print data =my_data;
次のコードを使用すると、データセットの列「y」のみで欠損値をゼロに置き換えることができます。
/*create new dataset with missing values in "y" column replaced by zero*/
data my_data_new;
set my_data;
array variablesOfInterest y;
do over variablesOfInterest;
if variablesOfInterest=. then variablesOfInterest= 0 ;
end ;
run ;
/*view new dataset*/
proc print data =my_data_new;
「y」列の欠損値のみがゼロに置き換えられていることに注意してください。
追加リソース
次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。
SAS でデータを正規化する方法
SAS で重複を削除する方法
SAS での手順の概要の使用方法
SAS でゼロではない観測値を選択する方法