以下をご覧ください。
data A; X=1; Y=2; Z=3; run; data B; X=1; Z=3; Y=2; run; |
データセット A と B は、同じ変数 X, Y, Z を持っています。
しかし変数の順番が異なります(YとZの順番)
このように2つのデータセット間で変数の順番が異なっていないか、確認したいことがあります。
例えば、治験のCDISC対応を例にとると、SDTMやADaMのデータセットをダブルプログラミングで作ってPROC COMPAREして「一致したからOKね」で終わらせてしまいがちですが、変数の順番が一致してるかまではPROC COMPAREは見てくれません。
しかし変数の順番が異なります(YとZの順番)
このように2つのデータセット間で変数の順番が異なっていないか、確認したいことがあります。
例えば、治験のCDISC対応を例にとると、SDTMやADaMのデータセットをダブルプログラミングで作ってPROC COMPAREして「一致したからOKね」で終わらせてしまいがちですが、変数の順番が一致してるかまではPROC COMPAREは見てくれません。
てことで、変数の順番を比較する方法を提案したいと思います。
%upcase( proc sort data=sashelp.vcolumn out=_null_ uniqueout=OUT1 nouniquekey sortseq=linguistic(strength=primary); by name varnum; where libname="WORK" and memname in ("A","B"); run; ); proc print data=OUT1 noobs label; var libname memname name varnum; run; |
結果がデータセットOUT1に出力されます。
「Y」と「Z」の順番が異なっていることが分かりますね。
プログラム青文字部分にチェック対象のライブラリ名とデータセット名を指定します。
0 件のコメント:
コメントを投稿