Sas で 1 対多のマージを実行する方法
次の構文を使用して、SAS で 1 対多のマージを実行できます。
data final_data;
merge data_one data_many;
byID ;
run ;
この特定の例では、 IDという変数でdata_oneとdata_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 で他の一般的なタスクを実行する方法について説明します。