概要
2つのデータセットを比較します。
構文
PROC COMPARE <option(s)>; BY <DESCENDING> variable-1 <<DESCENDING> variable-2 ...> <NOTSORTED>; ID <DESCENDING> variable-1 <<DESCENDING> variable-2 ...> <NOTSORTED>; VAR variable(s); WITH variable(s); RUN;
PROC COMPAREのオプション
Control the details in the default report
オプション | 要約 |
ALLOBS | すべてのマッチングオブザベーションの値を含めます。 |
ALLSTATS | マッチング変数のすべてのペアについて要約統計量テーブルを印刷します。 |
ALLVARS | すべてのマッチング変数の値と差異をレポートに含めます。 |
BRIEFSUMMARY | 簡潔な比較要約のみを印刷します。 |
FUZZ=number | 0と1の間の数字のレポートを変更します。 |
MAXPRINT=total | (per-variable, total) | 印刷される差異の数を制限します。 |
NODATE | 作成日および最終変更日の印刷を抑制します。 |
NOPRINT | すべての印刷出力を抑制します。 |
NOSUMMARY | データセット、変数、オブザベーション、値比較要約レポートを非表示にします。 |
NOVALUES | 値比較結果レポートを非表示にします。 |
PRINTALL | 値と差異の完全リストを作成します。 |
STATS | 不等と判断されたマッチング数値変数のすべてのペアの要約統計量テーブルを印刷します。 |
TRANSPOSE | 変数ごとではなくオブザベーションごとに値差異のレポートを印刷します。 |
Control the listing of variables and observations
オプション | 要約 |
LISTALL | 一方のデータセットにしかない変数とオブザベーションをすべてリストに出力します。 |
LISTBASE | 基準データセットにしかない変数とオブザベーションをすべてリストに出力します。 |
LISTBASEOBS | 基準データセットにしかないオブザベーションをすべてリストに出力します。 |
LISTBASEVAR | 一方のデータセットにしかない変数をすべてリストに出力します。 |
LISTCOMP | 比較データセットにしかない変数とオブザベーションをすべてリストに出力します。 |
LISTCOMPOBS | 比較データセットにしかないオブザベーションをすべてリストに出力します。 |
LISTCOMPVAR | 比較データセットにしかない変数をすべてリストに出力します。 |
LISTEQUALVAR | 値が同等と判断された変数をリストに出力します。 |
LISTOBS | 一方のデータセットにしかないオブザベーションをすべてリストに出力します。 |
LISTVAR | 一方のデータセットにしかない変数をすべてリストに出力します。 |
Control the output data set
オプション | 要約 |
OUT=SAS-data-set | 出力データセットを作成します。 |
OUTALL | BASE=データセットとCOMPARE=データセットのオブザベーションごとに1つずつオブザベーションを書き込みます。 |
OUTBASE | 基準データセットの各オブザベーションに対するオブザベーションを書き込みます。 |
OUTCOMP | 比較データセットのオブザベーションごとに1つずつオブザベーションを書き込みます。 |
OUTDIF | マッチングオブザベーションのペアごとに1つずつオブザベーションを出力データセットに書き込みます。 |
OUTNOEQUAL | すべての値が等しい場合、オブザベーションの書き込みを抑制します。 |
OUTPERCENT | マッチングオブザベーションのペアごとに1つずつオブザベーションを出力データセットに書き込みます。 |
Create an output data set that contains summary statistics
オプション | 要約 |
OUTSTATS=SAS-data-set | マッチング変数のすべてのペアの要約統計量を、指定したSAS-data-setに書き込みます。 |
Display a warning message in the SAS log
オプション | 要約 |
WARNING | 差異が見つかると、SASログに警告メッセージを表示します。 |
Display an error message in the SAS log
オプション | 要約 |
ERROR | 差異が見つかると、SASログにエラーメッセージを表示します。 |
Specify how the values are compared
オプション | 要約 |
CRITERION=γ | 数値の同等性を判断する基準を指定します。 |
METHOD=ABSOLUTE | EXACT | PERCENT | RELATIVE<(δ)> | 数値の同等性を判断するメソッドを指定します。 |
NOMISSBASE | 基準データセットの欠損値をすべての値と同等であると判断します。 |
NOMISSCOMP | 比較データセットの欠損値をすべての値と同等であると判断します。 |
NOMISSING | 基準データセットと比較データセットの両方にある欠損値を、すべての値と同等であると判断します。 |
Specify the data sets to compare
オプション | 要約 |
BASE=SAS-data-set | 基準データセットとして使用するデータセットを指定します。 |
COMPARE=SAS-data-set | 比較データセットとして使用するデータセットを指定します。 |
Write notes to the SAS log
オプション | 要約 |
NOTE | 比較結果を説明する注釈をSASログに表示します。 |
ステートメントの説明
ステートメント | 必須 | 解説 |
BY | BYグループごとに個別の比較を行います。 | |
ID | オブザベーションのマッチングに使用する変数のリストを表示します。 | |
VAR | 変数値の比較を、VARステートメントで指定した変数に限定します。 | |
WITH | 基準データセットの変数と比較データセットの異なる名前の変数を比較します。また、同一データセット内の異なる変数を比較します。 |
例1:ステートメントなし
data aaa_1;
input col_1 $ col_2 $ col_3 $ col_4;
cards;
id_0001 aaaa bbbb 1111
id_0002 xxxx yyyy 2222
;
run;
data aaa_2;
input col_1 $ col_2 $ col_3 $ col_4;
cards;
id_0001 aaaa bbbb 1111
id_0002 xxxx yyyy 22221
;
run;
proc compare base = aaa_1 comp = aaa_2;
run;
![](https://ymddttm.com/wp-content/uploads/2021/11/2021-1107_01.png)
![](https://ymddttm.com/wp-content/uploads/2021/11/2021-1107_02.png)
(列幅が違うのは気にしないでください。)
![](https://ymddttm.com/wp-content/uploads/2021/11/2021-1107_03.png)
例2:idを使用
proc compare base = aaa_1 comp = aaa_2;
id col_1;
run;
![](https://ymddttm.com/wp-content/uploads/2021/11/2021-1107_04-1.png)
例3:varを使用
data ccc_1;
input col_1 $ col_2 $ col_3 $ col_4;
cards;
id_0001 aaaa bbbb 1111
id_0002 xxxx yyyy 2222
;
run;
data ccc_2;
input col_1 $ col_2 $ col_3 $ col_4;
cards;
id_0001 aaaa aaaa 1111
id_0002 xxxx xxxx 22221
;
run;
proc compare base = ccc_1 comp = ccc_2;
var col_1 col_2;
run;
![](https://ymddttm.com/wp-content/uploads/2021/11/2021-1107_05.png)
![](https://ymddttm.com/wp-content/uploads/2021/11/2021-1107_06.png)
![](https://ymddttm.com/wp-content/uploads/2021/11/2021-1107_07-1.png)
例4:withも使用
data ddd_1;
input col_1 $ col_2 $ col_3 $ col_4;
cards;
id_0001 aaaa bbbb 1111
id_0002 xxxx yyyy 2222
;
run;
data ddd_2;
input col_1 $ col_2 $ col_3 $ col_4 $ col_5;
cards;
uid_1 id_0001 aaaa aaaa 1111
uid_2 id_0002 xxxx xxxx 22221
;
run;
proc compare base = ddd_1 comp = ddd_2;
var col_1 col_2;
with col_2 col_3;
run;
![](https://ymddttm.com/wp-content/uploads/2021/11/2021-1107_08.png)
![](https://ymddttm.com/wp-content/uploads/2021/11/2021-1107_09.png)
![](https://ymddttm.com/wp-content/uploads/2021/11/2021-1107_10.png)
例5:withだけを使用
proc compare base = ddd_1 comp = ddd_2;
with col_2 col_3;
run;
![](https://ymddttm.com/wp-content/uploads/2021/11/2021-1107_11-1024x768.png)
エラーメッセージにもあるとおり、WITHのみでは利用できません。
コメント