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

Как заменить пропущенные значения нулем в 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.