Sas: a が b ではない場合にマージする方法


次の基本構文を使用して、SAS の 2 つのデータセットをマージし、最初のデータセットに値が存在し、2 番目のデータセットには存在しない行のみを返すことができます。

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

この特定の例では、 data1data2というデータ セットをマージし、 data1に値が存在し、 data2に値が存在しない行のみを返します。

次の例は、この構文を実際に使用する方法を示しています。

例: If A Not B を使用して SAS 内の 2 つのデータセットを結合する

SAS に、会社の営業担当者に関する情報を含む次の 2 つのデータセットがあるとします。

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

次のマージステートメントを使用して、 ID列の値に基づいて 2 つのデータセットをマージすると、両方のデータセットからすべての行が返されます。

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

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

ただし、 INステートメントを使用すると、値が最初のデータ セットに存在し、 2 番目のデータ セットには存在しない行のみを返すことができます。

 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;

値が最初のデータ セットに存在し、2 番目のデータ セットには存在しない行のみが返されることに注意してください。

: SAS mergeステートメントの完全なドキュメントはここで見つけることができます。

追加リソース

次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。

SAS で左結合を行う方法
SAS で内部結合を実行する方法
SAS で外部結合を実行する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です