因此,我想根据某些分组变量比较 2 个表中的求和字段。但是因为我不关心小于 0.000099 的任何差异,所以我在使用 PROC COMPARE 之前将该字段四舍五入到小数点后 4 位,但我仍然看到小于 0.000099 的差异。
我不想在 PROC COMPARE 中使用 METHOD 论证。
因此,我想根据某些分组变量比较 2 个表中的求和字段。但是因为我不关心小于 0.000099 的任何差异,所以我在使用 PROC COMPARE 之前将该字段四舍五入到小数点后 4 位,但我仍然看到小于 0.000099 的差异。
我不想在 PROC COMPARE 中使用 METHOD 论证。
尝试该criterion
选项而不是method
:
proc compare data = x criterion = 0.0001;
可以在平等标准下找到一些讨论。
编辑:正如乔指出的那样,这隐含地设置了method = relative
,所以为了适应这个问题method = absolute
也是必要的。但不幸的是,这没有达到杰伊什的要求……
如果您绝对无法忍受更改METHOD
,那么您确实可以选择FUZZ
,这将允许您隐藏小于模糊因子的差异。它不会使差异消失 - 它们仍然标记为不同 - 但它隐藏了差异(任何差异 <FUZZ
将根据上下文显示为零或缺失)。然后,您必须对数据集或报告进行后处理,以便手动消除这些差异。
如果您在四舍五入后看到这样的差异,您可能会看到浮点精度引起的问题。即使四舍五入,下一个有效数字也会受到影响;您需要四舍五入到更不重要的东西,以确保“真实” .0001 被抑制。[IE,四舍五入不能完美地工作,因为四舍五入的数字仍然必须存储为数字 - 由于您四舍五入到十进制值,而不是二进制,它不能保证正确存储的数字。]