COMPAREプロシジャの出力で、文字変数の値の全体を表示する
[OS] ALL
[リリース] ALL
[キーワード] COMPARE, OUT= option, OUTNOEQUAL option, OUTBASE option, OUTCOMP option
[質問]
COMPAREプロシジャで、データセットの比較をしています。
[回答]COMPAREプロシジャの結果出力で、文字変数の値を20バイトより増やすことはできませんが、結果をデータセットに出力する場合は、全体を出力できます。 以下の例では、COMPAREプロシジャのOUT=オプションを利用して、比較結果を一時データセットに出力し、PRINTプロシジャにより、OUTPUTへ出力しています。 例:COMPAREプロシジャでのOUT=オプションの指定例 /* サンプルデータセット1 */ DATA data1; LENGTH text $ 40; INPUT no text $; CARDS; 1 aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd 2 aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd 3 aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd ; RUN; /* サンプルデータセット 2 */ DATA data2; LENGTH text $ 40; INPUT no text $; CARDS; 1 aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd 2 aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd 3 aaaaaaaaaabbbbbbbbbbccccccccccdddddddddx ; RUN; /* COMPAREプロシジャ実行 */ PROC COMPARE BASE=data1 COMP=data2 OUT=diff OUTNOEQUAL OUTBASE OUTCOMP; /* OPTION 指定 */ RUN; /* PRINTプロシジャで出力 */ PROC PRINT DATA=diff; RUN; 各オプションの説明
出力結果例 OBS _TYPE_ _OBS_ text no 1 BASE 3 aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd 3 2 COMPARE 3 aaaaaaaaaabbbbbbbbbbccccccccccdddddddddx 3 |