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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *