2つのデータセットのマージで両方にキーがあるときだけデータを出力する
[OS] ALL
[リリース] ALL
[キーワード] Base, DATA, MERGE, IN OPTION
[質問]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 |