Sas: hoe te fuseren als a niet b is


U kunt de volgende basissyntaxis gebruiken om twee gegevenssets in SAS samen te voegen en alleen die rijen te retourneren waarvoor een waarde bestaat in de eerste gegevensset en niet in de tweede:

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

In dit specifieke voorbeeld worden gegevenssets met de naam data1 en data2 samengevoegd en worden alleen rijen geretourneerd waarin een waarde bestaat in data1 en niet data2 .

Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.

Voorbeeld: voeg twee gegevenssets samen in SAS met If A Not B

Stel dat we de volgende twee gegevenssets in SAS hebben die informatie bevatten over de verkopers van een bedrijf:

 /*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; 

Als we de volgende merge- instructie gebruiken om de twee datasets samen te voegen op basis van de waarde van de ID- kolom, worden alle rijen uit beide datasets geretourneerd:

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

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

We kunnen IN- instructies echter gebruiken om alleen rijen te retourneren waarin een waarde bestaat in de eerste dataset en niet in de tweede dataset:

 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;

Houd er rekening mee dat alleen rijen waarvoor een waarde bestaat in de eerste gegevensset en niet de tweede gegevensset worden geretourneerd.

Opmerking : U kunt de volledige documentatie voor de SAS merge- instructie hier vinden.

Aanvullende bronnen

In de volgende zelfstudies wordt uitgelegd hoe u andere veelvoorkomende taken in SAS kunt uitvoeren:

Hoe maak je een left join in SAS?
Hoe u een inner join uitvoert in SAS
Hoe u een externe join in SAS uitvoert

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert