Sas: jak używać instrukcji jeżeli w proc sql
Choć w PROC SQL w SAS-ie nie ma możliwości użycia instrukcji IF , to za pomocą operatora CASE można zdefiniować wartości, jakie zmienna powinna przyjmować w oparciu o określone warunki.
Poniższe przykłady pokazują, jak w praktyce wykorzystać operator CASE z następującym zbiorem danych w SAS-ie, który zawiera informacje o różnych koszykarzach:
/*create dataset*/
data my_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 =my_data;
Przykład 1: Użycie operatora CASE z tylko dwoma wynikami
Możemy użyć operatora CASE w PROC SQL , aby wygenerować nową kolumnę w zbiorze danych o nazwie flaga_punktów , która przyjmuje wartość 0, jeśli wartość w kolumnie punktów jest mniejsza niż 20, lub wartość 1 w przeciwnym razie:
/*create new column called points_flag using case operator*/
proc sql ;
select *,
box
when points < 20 then 0 else 1
end as points_flag
from my_data;
quit ;
Należy zauważyć, że kolumna flaga punktów przyjmuje wartość 0, jeśli wartość kolumny punktów jest mniejsza niż 20, lub wartość 1 w przeciwnym razie.
Przykład 2: Użycie operatora CASE z więcej niż dwoma wynikami
Możemy również użyć operatora CASE w PROC SQL , aby wygenerować nową kolumnę w zbiorze danych o nazwie flaga_punktów , która przyjmuje wartość 0, jeśli wartość w kolumnie punktów jest mniejsza niż 20, wartość 1, jeśli liczba punktów jest mniejsza niż 35, lub wartość 2 w przeciwnym razie:
/*create new column called points_flag using case operator*/
proc sql ;
select *,
box
when points < 20 then 0
when points < 35 then 1 else 2
end as points_flag
from my_data;
quit ;
Należy zauważyć, że kolumna flaga_punktów przyjmuje wartość 0, 1 lub 2 w zależności od odpowiadającej wartości w kolumnie punktów .
Uwaga : Możesz użyć dowolnej liczby instrukcji if, aby wygenerować dowolną liczbę różnych wartości w nowej kolumnie.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:
SAS: Jak używać operatora WHERE w PROC SQL
SAS: Jak używać operatora IN w PROC SQL
SAS: Jak używać UPDATE w PROC SQL
SAS: Jak używać CONTAINS w PROC SQL