Sas: como mesclar conjuntos de dados com base em duas variáveis
Você pode usar a seguinte sintaxe básica para mesclar dois conjuntos de dados no SAS com base na correspondência de duas variáveis:
data final_data;
merge data1(in=a) data2(in=b);
by ID Store;
if a and b;
run ;
Este exemplo específico mescla os conjuntos de dados chamados data1 e data2 com base nas variáveis chamadas ID e Store e retorna apenas as linhas onde existe um valor em ambos os conjuntos de dados.
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: mesclar conjuntos de dados em SAS com base em duas variáveis
Suponha que temos o seguinte conjunto de dados no SAS que contém informações sobre os vendedores de uma empresa:
/*create first dataset*/
data data1;
inputStoreID $;
datalines ;
1A
1B
1 C
2A
2C
3A
3 B
;
run ;
/*view first dataset*/
title "data1";
proc print data = data1;
E suponha que temos outro conjunto de dados contendo informações sobre vendas realizadas em diferentes lojas por cada associado:
/*create second dataset*/
data data2;
input Store ID $Sales;
datalines ;
1 to 22
1 B 25
2 to 40
2 B 24
2 C 29
3 to 12
3 B 15
;
run ;
/*view second dataset*/
title "data2";
proc print data = data2;
Podemos usar a seguinte instrução de mesclagem para mesclar os dois conjuntos de dados com base nos valores correspondentes nas colunas ID e Store e, em seguida, retornar apenas as linhas onde existe um valor em ambas as colunas:
/*perform merge*/
data final_data;
merge data1(in=a) data2(in=b);
by ID Store;
if a and b;
run ;
/*view results*/
title "final_data";
proc print data =final_data;
O conjunto de dados resultante retorna linhas nas quais os valores das colunas ID e Store correspondem.
Observação : você pode encontrar a documentação completa da instrução de mesclagem SAS aqui .
Recursos adicionais
Os tutoriais a seguir explicam como executar outras tarefas comuns no SAS:
SAS: Como realizar uma mesclagem um-para-muitos
SAS: Como usar (in=a) na instrução merge
SAS: Como mesclar se A não for B