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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *