たまにタイトルにあるようなチェックをかけたい事ってありますよね。
色々方法はあると思いますが、今回はPROC SORTによる解法を載せておきます。
ここで、WORKライブラリのデータセットTEST1、TEST2、TEST3に同じ変数名があるかを確認したいと思います。
%upcase( proc sort data=sashelp.vcolumn out=OUT1 nouniquekey sortseq=linguistic(strength=primary); by name; /* 以下対象のライブラリ名とデータセット名を大文字で指定する */ where libname="WORK" and memname in ("TEST1","TEST2","TEST3"); run; ) |
結果がデータセットOUT1に出力されます。
「aa」と「bb」が変数名として重複してるってことですね。
- 変数定義情報は「SASHELP.VCOLUMN」から取得しています。
- PROC SORTの「NOUNIQUEKEY」をうまく利用しています。
- 「SORTSEQ=なんちゃらかんちゃら」の部分はマニュアル分かりづらくてちゃんと調べきれてないですが、これを指定すると日本語をソートする場合だと「あ」と「ア」、「ア」と「ア」、「B」と「b」などを同じとみなすようになります(※すべての環境で日本語が左記に書いたような挙動となるかは未確認)
- 今回の場合は変数名が大文字だったり小文字だったりしても同じものとみなしたいんで指定してます。
- プログラム青文字部分にチェック対象のライブラリ名とデータセット名を指定します。
0 件のコメント:
コメントを投稿