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
Available on demand!
Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.
コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。
SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。
Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。