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

Add a Comment

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