Sas: как использовать оператор if в proc sql
Хотя в SAS невозможно использовать оператор IF в PROC SQL , вы можете использовать оператор CASE для определения значений, которые переменная должна принимать в зависимости от определенных условий.
В следующих примерах показано, как на практике использовать оператор CASE со следующим набором данных в SAS, содержащим информацию о различных баскетболистах:
/*create dataset*/
data my_data;
input team $points;
datalines ;
Cavs 12
Cavs 14
Warriors 15
Hawks 18
Mavs 31
Mavs 32
Mavs 35
Celtics 36
Celtics 40
;
run ;
/*view dataset*/
proc print data =my_data;
Пример 1. Использование оператора CASE только с двумя результатами
Мы можем использовать оператор CASE в PROC SQL для создания нового столбца в наборе данных с именем point_flag , который принимает значение 0, если значение в столбце точек меньше 20, или значение 1 в противном случае:
/*create new column called points_flag using case operator*/
proc sql ;
select *,
box
when points < 20 then 0 else 1
end as points_flag
from my_data;
quit ;
Обратите внимание, что столбецpoints_flag принимает значение 0, если значение столбца точек меньше 20, или значение 1 в противном случае.
Пример 2. Использование оператора CASE с более чем двумя результатами
Мы также можем использовать оператор CASE в PROC SQL для создания нового столбца в наборе данных с именем Points_flag , который принимает значение 0, если значение в столбце точек меньше 20, значение 1, если количество точек меньше 35. или значение 2 в противном случае:
/*create new column called points_flag using case operator*/
proc sql ;
select *,
box
when points < 20 then 0
when points < 35 then 1 else 2
end as points_flag
from my_data;
quit ;
Обратите внимание, что столбецpoints_flag принимает значение 0, 1 или 2 в зависимости от соответствующего значения в столбце точек .
Примечание . Не стесняйтесь использовать столько операторов if , сколько хотите, чтобы генерировать столько разных значений, сколько хотите в новом столбце.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:
SAS: как использовать оператор WHERE в PROC SQL
SAS: как использовать оператор IN в PROC SQL
SAS: как использовать UPDATE в PROC SQL
SAS: как использовать CONTAINS в PROC SQL