BookmarkSubscribeRSS Feed

2つのデータセットのマージで両方にキーがあるときだけデータを出力する

Started ‎03-13-2018 by
Modified ‎04-19-2018 by
Views 1,451

質問

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

 

 

Version history
Last update:
‎04-19-2018 09:05 PM
Updated by:
Contributors

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

Article Labels
Article Tags

SAS Support Communitiesのユーザーガイドライン


コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。

詳細を読む

 

SAS Support CommunitiesのFAQ


SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。

詳細を読む

 

質問や意見の投稿と返信方法について


Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。

詳細を読む