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