MERGEステートメントを使用して2つのデータセットを結合する際、両方のデータセットにキーがあるときだけデータを出力するようにできますか?
両方のデータセットにキーが存在するときだけデータを出力するには、MERGEステートメントでIN=オプションを指定します。
「IN=変数名」はブーリアンフラグで、BYグループが替わるたびにリセットされます。 両方のデータセットにデータが存在するデータだけを出力する場合は、BYグループをチェックします。
下記の例を参考にしてください。
プログラム例:
DATA file1;
INPUT var name $;
CARDS;
100 john
200 joe
400 bill
600 bob
;
RUN;
PROC SORT data=file1;
BY var;
RUN;
DATA file2;
INFILE cards dsd truncover;
INPUT var address $ 13.;
CARDS;
100,34 Smith Road
200,67 Burt Ave
300,12 You St
400,45 Younge St
500,79 Wellington
600,23 Done Road
;
RUN;
PROC SORT data= file2;
BY var;
RUN;
DATA three;
MERGE file1 (in=a) file2 (in=b);
BY var;
IF a and b;
RUN;
PROC PRINT;
RUN;
結果:
Obs var name address
1 100 john 34 Smith Road
2 200 joe 67 Burt Ave
3 400 bill 45 Younge St
4 600 bob 23 Done Road
Catch the best of SAS Innovate 2025 — anytime, anywhere. Stream powerful keynotes, real-world demos, and game-changing insights from the world’s leading data and AI minds.
コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。
SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。
Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。