Как использовать if-then-else в sas (с примерами)


Вы можете использовать оператор IF-THEN-ELSE в SAS, чтобы вернуть значение , если условие истинно, или вернуть другое значение, если условие неверно.

В этом операторе используется следующий базовый синтаксис:

 if var1 > 30 then var2 = 'good';
else var2 = 'bad';

Вы также можете объединить несколько операторов ELSE IF вместе, чтобы вернуть больше потенциальных значений на основе большего количества условий:

 if var1 > 35 then var2 = 'great';
else if var1 > 30 then var2 = 'good';
else var2 = 'bad';

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

 /*create dataset*/
data original_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 = original_data; 

Пример 1: IF-THEN-ELSE в SAS

Мы можем использовать следующий оператор IF-THEN-ELSE , чтобы создать новую переменную с именем рейтинг , которая принимает значение «хорошо», если значение в столбце баллов больше 30, или значение «плохо» в противном случае:

 /*create new dataset with new variable called rating*/
data new_data;
    set original_data;
    if points > 30 then rating = 'good';
    else rating = 'bad';
run ;

/*view new dataset*/
proc print data =new_data; 

Обратите внимание, что новый столбец под названием « Рейтинг» принимает значение «хорошо», если значение столбца « баллы » превышает 30, или значение «плохо», в противном случае.

Пример 2: IF-THEN-ELSE IF в SAS

Мы можем использовать следующий оператор IF-THEN-ELSE IF , чтобы создать новую переменную с именем рейтинг , которая принимает следующие значения:

  • «супер», если баллов больше 35
  • в противном случае «хорошо», если количество баллов превышает 30.
  • иначе «плохо»

Следующий код показывает, как это сделать:

 /*create new dataset with new variable called rating*/
data new_data;
    set original_data;
    if points > 35 then rating = 'great';
    else if points > 30 then rating = 'good';
    else rating = 'bad';
run ;

/*view new dataset*/
proc print data =new_data; 

Новый столбец под названием « Рейтинг» принимает значения «отлично», «хорошо» или «плохо» в зависимости от соответствующего значения в столбце «баллы ».

Примечание . Не стесняйтесь использовать столько операторов ELSE IF , сколько хотите, чтобы вернуть столько разных значений, сколько хотите, в зависимости от различных условий.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как использовать IF-THEN-DO в SAS
Как удалить дубликаты в SAS
Как заменить пропущенные значения нулями в SAS

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

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