Вы можете использовать оператор SELECT-WHEN в SAS, чтобы присвоить значения новой переменной на основе значений существующей категориальной переменной в наборе данных.
Этот оператор использует следующий основной синтаксис:
data new_data;
set my_data;
select (Existing_Column);
when('value1') New_Column= 1 ;
when('value2') New_Column= 2 ;
when('value3') New_Column= 3 ;
otherwise New_Column= 4 ;
end ;
run ;
Этот синтаксис создает новый столбец с именем New_Column , значения которого зависят от значений в Existing_Column .
В следующем примере показано, как использовать инструкцию SELECT-WHEN на практике.
Пример: SELECT-WHEN в SAS
Предположим, у нас есть следующий набор данных в SAS, который содержит информацию о различных баскетболистах:
/\*create dataset\*/
data my_data;
input team $ rating $ points;
datalines ;
Mavs Great 22
Mavs Good 29
Mavs OK 15
Mavs Bad 8
Spurs Good 30
Spurs OK 15
Spurs OK 20
Spurs Bad 7
;
run ;
/\*view dataset\*/
proc print data =my_data;

Мы можем использовать следующий оператор SELECT-WHEN для создания новой переменной с именем Player_Status , значения которой зависят от значения в столбце рейтинга :
/\*create new dataset with Player_Status column\*/
data new_data;
set my_data;
select (rating);
when('Great') Player_Status= 1 ;
when('Good') Player_Status= 2 ;
when('OK') Player_Status= 3 ;
otherwise Player_Status= 4 ;
end ;
run ;
/\*view new dataset\*/
proc print data =new_data;

Вот как были сгенерированы значения в новом столбце Player_Status :
- Если рейтинг был равен «Отлично», то Player_Status присваивался 1 .
- Если рейтинг был равен «Хорошо», то Player_Status присваивался 2 .
- Если рейтинг был равен «ОК», то Player_Status присваивался 3 .
- Если рейтинг не был равен ни одному из ранее указанных значений, то Player_Status присваивался 4 .
Примечание.Полную документацию по оператору SELECT в SAS можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
Полное руководство по циклам DO в SAS
Как использовать IF-THEN-DO в SAS