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