「MERGEステートメントにBY値を繰り返すデータセットが複数あります。」
[OS] ALL
[リリース] ALL
[キーワード] Base, DATA, MERGE, message, BY, repeat
[質問]データセットのマージを行なったところ、データセットは出力されましたが、ログに下記のメッセージが出力されました。 MERGEステートメントにBY値を繰り返すデータセットが複数あります。
このメッセージはどのようなときに表示されますか。
[回答]
上記のメッセージは、2つ以上のデータセットが、BYグループの中に重複する値を持っているときに表示されます。
下記の例では、BYグループ変数IDの値が”c”であるオブザベーションが2つのデータセットで重複していることにより、変数COLORの値が期待する結果と異なる可能性があります。 プログラム例: /* ID='a'とID='c'が重複 */ DATA one; INPUT id $ fruit $; CARDS; a apple a apple b banana c coconut c coconut c coconut ; RUN; PROC SORT data=one; BY id; RUN; /* ID='b'とID='c'が重複 */ DATA two; INPUT id $ color $; CARDS; a amber b brown b black c cocoa c cream ; RUN; PROC SORT data=two; BY id; RUN; DATA test; MERGE one two; BY id; RUN; PROC PRINT; RUN; 実行結果: Obs id fruit color 1 a apple amber 2 a apple amber 3 b banana brown 4 b banana black 5 c coconut cocoa 6 c coconut cream 7 c coconut cream |