Sas: hoe datasets samen te voegen op basis van twee variabelen


U kunt de volgende basissyntaxis gebruiken om twee gegevenssets in SAS samen te voegen op basis van de overeenkomst van twee variabelen:

 data final_data;
  merge data1(in=a) data2(in=b);
  by ID Store;
  if a and b;
run ;

In dit specifieke voorbeeld worden de gegevenssets data1 en data2 samengevoegd op basis van de variabelen genaamd ID en Store , en worden alleen de rijen geretourneerd waarin een waarde in beide gegevenssets voorkomt.

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

Voorbeeld: gegevenssets in SAS samenvoegen op basis van twee variabelen

Stel dat we de volgende gegevensset in SAS hebben die informatie bevat over de verkopers van een bedrijf:

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

En stel dat we nog een dataset hebben met informatie over de verkopen die elke medewerker in verschillende winkels heeft gedaan:

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

We kunnen de volgende merge- instructie gebruiken om de twee datasets samen te voegen op basis van de overeenkomende waarden in de ID- en Store- kolommen, en vervolgens alleen de rijen retourneren waar in beide kolommen een waarde bestaat:

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

De resulterende dataset retourneert rijen waarin de ID- en Store- kolomwaarden overeenkomen.

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:

SAS: Hoe u een één-op-veel-samenvoeging uitvoert
SAS: Hoe (in=a) te gebruiken in een merge-instructie
SAS: Hoe te fuseren als A niet B is

Einen Kommentar hinzufügen

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