Sas で 1 対多のマージを実行する方法


次の構文を使用して、SAS で 1 対多のマージを実行できます。

 data final_data;
  merge data_one data_many;
  byID ;
run ;

この特定の例では、 IDという変数でdata_onedata_manyというデータセットをマージすることにより、 final_dataという新しいデータセットを作成します。

data_oneデータセットでは、それぞれの一意の ID 値は 1 回だけ表示されます。

data_manyデータセットでは、それぞれの一意の ID 値が複数回出現します。

これは 1 対多のマージと呼ばれます。

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

例: SAS での 1 対多のマージ

会社の営業担当者に関する情報が含まれるdata_oneという次のデータセットがあるとします。

 /*create dataset*/
data data_one;
    inputIDGender $;
    datalines ;
1 Male
2 Male
3 Female
4 Male
5 Female
;
run ;

/*view dataset*/
proc print data = data_one; 

各一意の ID 値はデータセット内で 1 回だけ出現することに注意してください。

ここで、さまざまな場所で各販売者が行った売上に関する情報を含むdata_manyという別のデータセットがあるとします。

 /*create dataset*/
data data_many;
    input Store ID $Sales;
    datalines ;
1 to 22
1 B 25
1 C 20
2 to 14
2 B 23
3 to 10
4 to 15
4 B 29
5 to 16
5 C 22
;
run ;

/*view dataset*/
proc print data = data_many; 

各一意の ID 値が複数回出現することに注意してください。

次の構文を使用して、これらのデータセットを使用して 1 対多のマージを実行できます。

 /*create new dataset using one-to-many merge*/
data final_data;
  merge data_one data_many;
  byID ;
run ;

/*view new dataset*/
proc print data =final_data; 

1 対多のマージにより、両方のデータセットのすべての情報を含む新しいデータセットが生成されました。

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

追加リソース

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

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

コメントを追加する

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