COMPAREプロシジャで、データセットの比較をしています。
データセットに20バイトを超える文字変数が含まれていますが、結果出力では最初の20バイトしか表示されません。全体を表示させることはできますか。
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;
各オプションの説明
OUT= | 出力データセット名 |
OUTNOEQUAL | すべての値が一致しているときは、オブザベーションを表示しない |
OUTBASE | BASE=で指定したデータセットのオブザベーションを表示する |
OUTCOMP | COMPARE=で指定したデータセットのオブザベーションを表示する |
出力結果例
OBS _TYPE_ _OBS_ text no 1 BASE 3 aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd 3 2 COMPARE 3 aaaaaaaaaabbbbbbbbbbccccccccccdddddddddx 3
Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。
SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。
Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。