Sas: hoe (in=a) te gebruiken in een merge-instructie


Wanneer u twee gegevenssets in SAS samenvoegt, kunt u de IN- instructie gebruiken om alleen rijen te retourneren waarin een waarde bestaat in een bepaalde gegevensset.

Hier zijn enkele veelvoorkomende manieren om de IN- instructie in de praktijk te gebruiken:

Methode 1: Retourneer rijen waar waarde bestaat in de eerste gegevensset (in=a)

 data final_data;
  merge data1 (in=a) data2;
  byID ;
  if a;
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 .

Methode 2: Retourneer rijen waar waarde bestaat in de tweede gegevensset (in=b)

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

In dit specifieke voorbeeld worden de gegevenssets data1 en data2 samengevoegd en worden alleen de rijen geretourneerd waarvoor een waarde bestaat in data2 .

Methode 3: Retourneer rijen waarin waarde bestaat in beide gegevenssets (in=a) en (in=b)

 data final_data;
  merge data1(in=a) data2(in=b);
  byID ;
  if a and 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 zowel data1 als data2 .

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met de volgende twee gegevenssets:

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

Voorbeeld 1: retourneer alle rijen

We kunnen de volgende merge- instructie gebruiken zonder enige IN- instructie om de twee datasets samen te voegen op basis van de ID- kolomwaarde en alle rijen uit beide datasets te retourneren:

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

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

Houd er rekening mee dat alle rijen in beide datasets worden geretourneerd, zelfs als waarden ontbreken vanwege een ID-waarde die niet in beide datasets bestaat.

Voorbeeld 2: retourneer rijen waar waarde bestaat in de eerste gegevensset (in = a)

We kunnen de volgende merge- instructie gebruiken met (in=a) om de twee datasets samen te voegen op basis van de waarde in de ID- kolom en alleen de rijen te retourneren waarin een waarde bestaat in de eerste dataset:

 /*perform merge*/
data final_data;
  merge data1 (in = a) data2;
  byID ;
  if a;
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 worden geretourneerd.

Voorbeeld 3: Rijen retourneren waar waarde bestaat in de tweede gegevensset (in=b)

We kunnen de volgende merge- instructie gebruiken met (in=b) om de twee datasets samen te voegen op basis van de waarde in de ID- kolom en alleen de rijen terug te geven waar een waarde bestaat in de tweede dataset:

 /*perform merge*/
data final_data;
  merge data1 data2(in=b);
  byID ;
  if 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 tweede gegevensset worden geretourneerd.

Voorbeeld 4: Rijen retourneren waarin de waarde voorkomt in beide gegevenssets (in = a) en (in = b)

We kunnen de volgende samenvoeginstructie gebruiken met (in=a) en (in=b) om de twee gegevenssets samen te voegen op basis van de waarde in de ID- kolom en alleen die rijen te retourneren waarin een waarde bestaat in beide gegevenssets:

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

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

Houd er rekening mee dat alleen rijen waarvoor in beide gegevenssets een waarde bestaat, 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