Sas: jak używać update w proc sql


Możesz użyć instrukcji UPDATE w PROC SQL w SAS-ie, aby zaktualizować wartości w jednej lub większej liczbie kolumn w zbiorze danych.

Oto najczęstsze sposoby wykorzystania instrukcji UPDATE w praktyce:

Metoda 1: Zaktualizuj wartości w kolumnie na podstawie warunku

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

Metoda 2: Zaktualizuj wartości w kolumnie na podstawie wielu warunków

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

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce z następującym zbiorem danych w SAS-ie:

 /*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; 

Przykład 1: Zaktualizuj wartości w kolumnie na podstawie warunku

Możemy użyć poniższej instrukcji UPDATE w PROC SQL , aby zaktualizować każdą z wartości kolumn zespołu na „Atlanta”, gdzie istniejące wartości są równe „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; 

Należy pamiętać, że każda wartość w kolumnie zespołu, która poprzednio była równa „A”, jest teraz równa „Atlanta”.

Wszelkie wartości, które nie były równe „A” w kolumnie zespołu, po prostu pozostawiono bez zmian.

Przykład 2: Zaktualizuj wartości w kolumnie na podstawie wielu warunków

Możemy użyć poniższej instrukcji UPDATE w PROC SQL , aby zaktualizować każdą z wartości w kolumnie punktów w oparciu o kilka warunków:

 /*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; 

Do aktualizacji wartości w kolumnie punktów użyliśmy instrukcji UPDATE wraz z instrukcją CASE WHEN .

Zwłaszcza:

  • Jeśli istniejąca wartość w kolumnie punktów była większa niż 25, aktualizujemy ją do 100 .
  • W przeciwnym razie, gdyby istniejąca wartość w kolumnie punktów była większa niż 20, zaktualizowalibyśmy ją do 50 .
  • W przeciwnym razie zaktualizowaliśmy wartość w kolumnie punktów na 0 .

Zauważ, że w instrukcji CASE WHEN użyliśmy tylko trzech warunków, ale możesz użyć dowolnej liczby warunków.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:

SAS: Jak używać operatora LIKE w PROC SQL
SAS: Jak używać operatora IN w PROC SQL
SAS: Jak używać operatora WHERE w PROC SQL

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *