Sas: як використовувати update у proc sql


Ви можете використовувати оператор UPDATE у PROC SQL у SAS, щоб оновити значення в одному або кількох стовпцях у наборі даних.

Ось найпоширеніші способи використання оператора UPDATE на практиці:

Спосіб 1: оновіть значення в стовпці на основі умови

 proc sql ;
    update my_data
    set var1='new_value'
    where var1='old_value';
quit ;

Спосіб 2: оновіть значення в стовпці на основі кількох умов

 proc sql ;
    update my_data
    set var1 = 
    case when var1> 25 then 100
    when var1> 20 then 50
    else 0
    end;
quit ;

У наведених нижче прикладах показано, як використовувати кожен метод на практиці з таким набором даних у SAS:

 /*create dataset*/
data my_data;
    input team $position $points;
    datalines ;
A Guard 22
A Guard 20
A Guard 30
A Forward 14
A Forward 11
B Guard 12
B Guard 22
B Forward 30
B Forward 9
B Forward 12
B Forward 25
;
run ;

/*view dataset*/
proc print data =my_data; 

Приклад 1: Оновлення значень у стовпці на основі умови

Ми можемо використати наступний оператор UPDATE у PROC SQL , щоб оновити значення кожного стовпця команди на “Atlanta”, де наявні значення дорівнюють “A”:

 /*update values in team column where team is equal to 'A'*/
proc sql ;
    update my_data
    set team='Atlanta'
    where team='A';
quit ;

/*view updated dataset*/
proc print data =my_data; 

Зауважте, що кожне значення в колонці команди, яке раніше дорівнювало «А», тепер дорівнює «Атланті».

Будь-які значення, які не дорівнювали «А» в колонці команди, просто залишалися без змін.

Приклад 2: оновлення значень у стовпці на основі кількох умов

Ми можемо використовувати наступний оператор UPDATE у PROC SQL , щоб оновити кожне значення в стовпці точок на основі кількох умов:

 /*update values in points column based on multiple conditions*/
proc sql ;
    update my_data
    set points = 
    case when points> 25 then 100
    when points> 20 then 50
    else 0
    end;
quit ;

/*view updated dataset*/
proc print data =my_data; 

Ми використовували оператор UPDATE з оператором CASE WHEN , щоб оновити значення в стовпці балів.

Особливо:

  • Якщо наявне значення в стовпці балів було більше 25, ми оновлюємо його до 100 .
  • В іншому випадку, якби наявне значення в стовпці балів було більше 20, ми б оновили його до 50 .
  • В іншому випадку ми оновили значення в стовпці балів до 0 .

Зверніть увагу, що ми використали лише три умови в операторі CASE WHEN , але ви можете використовувати скільки завгодно умов.

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в SAS:

SAS: як використовувати оператор LIKE у PROC SQL
SAS: Як використовувати оператор IN у PROC SQL
SAS: як використовувати оператор WHERE у PROC SQL

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *