2019年6月12日水曜日

データセット間で変数の順番を比較する方法




以下をご覧ください。




サンプルデータ

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は見てくれません。


てことで、変数の順番を比較する方法を提案したいと思います。



PROC SORTでの解法例

%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」の順番が異なっていることが分かりますね。



やってること自体は、以下記事のテクニックの焼き直しなので、こちらもご参照下さい。
https://sas-boubi.blogspot.com/2019/02/blog-post_35.html

プログラム青文字部分にチェック対象のライブラリ名とデータセット名を指定します。


0 件のコメント:

コメントを投稿