Sas: como usar a instrução if no proc sql
Embora não seja possível usar uma instrução IF no PROC SQL no SAS, você pode usar o operador CASE para definir os valores que uma variável deve assumir com base em determinadas condições.
Os exemplos a seguir mostram como usar o operador CASE na prática com o seguinte conjunto de dados no SAS que contém informações sobre vários jogadores de basquete:
/*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;
Exemplo 1: Usando o operador CASE com apenas dois resultados
Podemos usar o operador CASE no PROC SQL para gerar uma nova coluna no conjunto de dados chamada points_flag que assume o valor 0 se o valor na coluna de pontos for menor que 20 ou o valor 1 caso contrário:
/*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 ;
Observe que a coluna points_flag assume o valor 0 se o valor da coluna points for menor que 20 ou o valor 1 caso contrário.
Exemplo 2: Usando o operador CASE com mais de dois resultados
Também podemos usar o operador CASE no PROC SQL para gerar uma nova coluna no conjunto de dados chamada points_flag que assume o valor 0 se o valor na coluna de pontos for menor que 20, o valor 1 se os pontos forem menores que 35, ou um valor de 2 caso contrário:
/*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 ;
Observe que a coluna points_flag assume o valor 0, 1 ou 2 dependendo do valor correspondente na coluna de pontos .
Nota : Sinta-se à vontade para usar quantas instruções when desejar para gerar quantos valores diferentes desejar em uma nova coluna.
Recursos adicionais
Os tutoriais a seguir explicam como executar outras tarefas comuns no SAS:
SAS: Como usar o operador WHERE no PROC SQL
SAS: Como usar o operador IN no PROC SQL
SAS: Como usar UPDATE no PROC SQL
SAS: Como usar CONTAINS no PROC SQL