私は次のコードを持っています。作成されるデータセットはtest_meansとtest_sqlです。どちらもあなたの選択した変数の単純平均をとっています。proc平均とproc sqlの平均値を調べると、proc比較によって異なる結果が得られるのはなぜですか?
両方とも目で正確に同じ番号を作成します。
なぜ、proc compareは0E-14のように値が愚かな小さな値と等しくないと言っていますか?これは、両方の手順で数値が保存される方法と関係していますか? E-14
程度の
%let var=; *Insert numeric variable to check;
%let dsn=; *Insert dataset name;
proc means noprint mean data=&dsn.;
var &var.;
output out=test_means (keep=_STAT_ &var. where=(_STAT_="MEAN"));
run;
proc sql;
create table test_sql as select
"MEAN" as _STAT_ length=8,
mean(&var.) as &var.
from &dsn.
;
quit;
proc compare data=test_means compare=test_sql;
run;
PROC COMPAREのドキュメントをご覧ください。具体的には、METHOD =オプションです。 –
浮動小数点数を使用することによって生じる丸め誤差であると仮定します。誰かがデータの処理順序が操作の結果に影響する例を示した最近の投稿はありませんでしたか? – Tom
これらは大きな違いはありません。 PROC COMPAREのFUZZオプションやソフトウェアの数値精度を見てください。 – Reeza