「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 |
|