Como usar a opção in= no sas


Você pode usar a opção IN= no SAS para criar uma variável booleana que indica se a observação atual vem ou não do conjunto de dados de entrada.

A opção IN= é comumente usada quando você adiciona dois conjuntos de dados e deseja saber se uma linha específica no conjunto de dados resultante vem de um dos conjuntos de dados de entrada específicos.

O exemplo a seguir mostra como usar a opção IN= na prática.

Exemplo: como usar a opção IN= no SAS

Suponha que temos dois conjuntos de dados contendo informações sobre jogadores de basquete nas conferências Leste e Oeste da NBA:

 /*create East dataset*/
data east_data;
    input team $points;
    datalines ;
Celtics 22
Pistons 14
Nets 35
Hornets 19
Magic 22
;
run ;

/*create West dataset*/
data west_data;
    input team $points;
    datalines ;
Mavs 40
Rockets 39
Warriors 23
Lakers 19
Clippers 25
;
run ;

/*view datasets*/
proc print data =east_data;
proc print data =west_data;

Podemos usar a seguinte sintaxe para criar um novo conjunto de dados que adicione esses dois conjuntos de dados:

 /*create new dataset*/
data all_data;
    set east_data west_data;
run ;

/*view new dataset*/
proc print data =all_data; 

Observe que cada linha em cada conjunto de dados pertence ao novo conjunto de dados.

Para descobrir de qual conjunto de dados vem cada linha, podemos usar a opção IN= da seguinte forma:

 /*create new dataset*/
data all_data;
    set east_data west_data( in =i);
    if i then conf='West';
    else conf='East';
run ;

/*view new dataset*/
proc print data =all_data; 

Usando a opção IN= , podemos criar uma nova coluna chamada conf que assume o valor “Leste” se a linha vier do conjunto de dados denominado east_data e o valor “Oeste” se a linha vier do conjunto de dados denominado east_data. dados chamados ouest_data .

Observe que também poderíamos usar apenas uma instrução IF sem uma instrução ELSE para criar uma nova coluna que simplesmente receba o valor * se a linha vier do conjunto de dados chamado east_data :

 /*create new dataset*/
data all_data;
    set east_data( in =i) west_data;
    if i then east_conf='*';
run ;

/*view new dataset*/
proc print data =all_data; 

Usando a opção IN= , podemos criar uma nova coluna chamada east_conf que assume o valor * se a linha vier do conjunto de dados chamado east_data e nenhum valor se a linha vier do conjunto de dados chamado west_data .

Recursos adicionais

Os tutoriais a seguir explicam como executar outras tarefas comuns no SAS:

Como usar o operador NOT EQUAL no SAS
Como usar um operador “NOT IN” no SAS
Como mesclar se A não B no SAS

Add a Comment

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