Como realizar uma junção interna no sas (com exemplo)


Você pode usar a seguinte sintaxe básica para realizar uma junção interna com dois conjuntos de dados no SAS:

 proc sql ;
    create table final_table as
    select * from data1 as x join data2 as y
    on x.ID = y.ID;
quit ;

O exemplo a seguir mostra como usar essa sintaxe na prática.

Relacionado: Como fazer um left join no SAS

Exemplo: junção interna no SAS

Vamos supor que temos os dois conjuntos de dados a seguir no SAS:

 /*create datasets*/
data data1;
    input team $points;
    datalines ;
Mavs 99
Spurs 93
Rockets 88
Thunder 91
Warriors 104
Cavs 93
Nets 90
Hawks 91
;
run ;

data data2;
    input team $rebounds;
    datalines ;
Mavs 21
Spurs 18
Warriors 27
Hawks 29
Knicks 40
Raptors 30
;
run ;

/*view datasets*/
proc print data =data1;
proc print data =data2; 

Observe que ambos os conjuntos de dados compartilham uma variável em comum: team .

Usaremos a seguinte sintaxe para realizar uma junção interna e criar um novo conjunto de dados contendo apenas as linhas onde a variável da equipe aparece em ambos os conjuntos de dados:

 /*perform inner join*/
proc sql ;
	create table final_table as
	select * from data1 as x join data2 as y
	on x.team = y.team;
quit ;

/*view results of inner join*/
proc print data =final_table; 

O conjunto de dados resultante contém apenas as linhas nas quais a variável de equipe aparece em ambos os conjuntos de dados.

Se você consultar os dois conjuntos de dados anteriores, notará que existem apenas quatro equipes que aparecem em ambos os conjuntos de dados: Mavs, Spurs, Warriors e Hawks.

Como optamos por juntar os dois conjuntos de dados na variável equipe , essas são as quatro equipes que também aparecem no conjunto de dados final.

Recursos adicionais

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

Como normalizar dados no SAS
Como substituir caracteres em uma string no SAS
Como substituir valores ausentes por zero no SAS
Como remover duplicatas no SAS

Add a Comment

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