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 , чтобы обновить каждое из значений столбца команды до «Атланта», где существующие значения равны «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

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

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