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