다음 코드가 있습니다. 작성된 데이터 세트는 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