Sas: verwendung von (in=a) in der merge-anweisung


Beim Zusammenführen zweier Datensätze in SAS können Sie die IN- Anweisung verwenden, um nur Zeilen zurückzugeben, in denen ein Wert in einem bestimmten Datensatz vorhanden ist.

Hier sind einige gängige Möglichkeiten, die IN- Anweisung in der Praxis zu verwenden:

Methode 1: Zeilen zurückgeben, in denen im ersten Datensatz ein Wert vorhanden ist (in=a)

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

In diesem speziellen Beispiel werden die Datensätze „data1“ und „data2“ zusammengeführt und nur Zeilen zurückgegeben, in denen ein Wert in „ data1“ vorhanden ist.

Methode 2: Zeilen zurückgeben, in denen im zweiten Datensatz ein Wert vorhanden ist (in=b)

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

In diesem speziellen Beispiel werden die Datensätze data1 und data2 zusammengeführt und nur die Zeilen zurückgegeben, für die in data2 ein Wert vorhanden ist.

Methode 3: Zeilen zurückgeben, in denen in beiden Datensätzen (in=a) und (in=b) ein Wert vorhanden ist

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

In diesem speziellen Beispiel werden die Datensätze data1 und data2 zusammengeführt und nur Zeilen zurückgegeben, in denen sowohl in data1 als auch in data2 ein Wert vorhanden ist.

Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit den folgenden zwei Datensätzen verwendet wird:

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

Beispiel 1: Alle Zeilen zurückgeben

Wir können die folgende Zusammenführungsanweisung ohne IN- Anweisung verwenden, um die beiden Datensätze basierend auf dem ID- Spaltenwert zusammenzuführen und alle Zeilen aus beiden Datensätzen zurückzugeben:

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

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

Beachten Sie, dass alle Zeilen in beiden Datensätzen zurückgegeben werden, auch wenn Werte fehlen, weil ein ID-Wert nicht in beiden Datensätzen vorhanden ist.

Beispiel 2: Zeilen zurückgeben, in denen im ersten Datensatz ein Wert vorhanden ist (in = a)

Wir können die folgende Merge- Anweisung mit (in=a) verwenden, um die beiden Datensätze basierend auf dem Wert in der ID- Spalte zusammenzuführen und nur die Zeilen zurückzugeben, in denen im ersten Datensatz ein Wert vorhanden ist:

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

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

Beachten Sie, dass nur Zeilen zurückgegeben werden, für die im ersten Datensatz ein Wert vorhanden ist.

Beispiel 3: Zeilen zurückgeben, in denen ein Wert im zweiten Datensatz vorhanden ist (in=b)

Wir können die folgende Merge- Anweisung mit (in=b) verwenden, um die beiden Datensätze basierend auf dem Wert in der ID- Spalte zusammenzuführen und nur die Zeilen zurückzugeben, in denen im zweiten Datensatz ein Wert vorhanden ist:

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

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

Beachten Sie, dass nur Zeilen zurückgegeben werden, für die im zweiten Datensatz ein Wert vorhanden ist.

Beispiel 4: Zeilen zurückgeben, in denen der Wert in beiden Datensätzen (in = a) und (in = b) vorhanden ist

Wir können die folgende Zusammenführungsanweisung mit (in=a) und (in=b) verwenden, um die beiden Datensätze basierend auf dem Wert in der ID- Spalte zusammenzuführen und nur die Zeilen zurückzugeben, in denen in beiden Datensätzen ein Wert vorhanden ist:

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

Beachten Sie, dass nur Zeilen zurückgegeben werden, für die in beiden Datensätzen ein Wert vorhanden ist.

Hinweis : Die vollständige Dokumentation für die SAS- Merge- Anweisung finden Sie hier .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in SAS ausführen:

So führen Sie einen Left Join in SAS durch
So führen Sie einen Inner Join in SAS durch
So führen Sie einen externen Join in SAS durch

Einen Kommentar hinzufügen

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