Sas: come unire se a non è b


È possibile utilizzare la seguente sintassi di base per unire due set di dati in SAS e restituire solo le righe per le quali esiste un valore nel primo set di dati e non nel secondo:

 data final_data;
  merge data1(in=a) data2(in=b);
  byID ;
  if a and not b;
run ;

Questo particolare esempio unisce i set di dati chiamati data1 e data2 e restituisce solo le righe in cui esiste un valore in data1 e non in data2 .

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: unire due set di dati in SAS utilizzando If A Not B

Supponiamo di avere i seguenti due set di dati in SAS che contengono informazioni sui venditori di un’azienda:

 /*create first dataset*/
data data1;
    inputIDGender $;
    datalines ;
1 Male
2 Male
3 Female
4 Male
5 Female
;
run ;

title "data1";
proc print data = data1;

/*create second dataset*/
data data2;
    input IDSales;
    datalines ;
1 22
2 15
4 29
6 31
7 20
8 13
;
run ;

title "data2";
proc print data = data2; 

Se utilizziamo la seguente istruzione di unione per unire i due set di dati in base al valore della colonna ID , tutte le righe verranno restituite da entrambi i set di dati:

 /*perform merge*/
data final_data;
  merge data1 data2;
  byID ;
run ;

/*view results*/
title "final_data";
proc print data =final_data;

Tuttavia, possiamo utilizzare le istruzioni IN per restituire solo le righe in cui esiste un valore nel primo set di dati e non nel secondo set di dati:

 data final_data;
  merge data1(in=a) data2(in=b);
  byID ;
  if a and not b;
run ;

/*view results*/
title "final_data";
proc print data =final_data;

Tieni presente che vengono restituite solo le righe per le quali esiste un valore nel primo set di dati e non nel secondo set di dati.

Nota : è possibile trovare la documentazione completa per l’istruzione di unione SAS qui .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in SAS:

Come eseguire un join sinistro in SAS
Come eseguire un inner join in SAS
Come eseguire un join esterno in SAS

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *