Как заменить пропущенные значения нулем в SAS


Часто вы можете захотеть заменить отсутствующие значения в наборе данных SAS нулями.

К счастью, это легко сделать с помощью простого оператора if then .

В следующих примерах показано, как на практике заменить отсутствующие значения нулями.

Пример 1. Замена пропущенных значений во всех столбцах

Предположим, у нас есть следующий набор данных в SAS с тремя столбцами, в каждом из которых есть некоторые пропущенные значения:

/\*create dataset\*/
data my_data;
 input x y z;
 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 с тремя столбцами, в каждом из которых есть некоторые пропущенные значения:

/\*create dataset\*/
data my_data;
 input x y z;
 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