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