这是一个相当广泛的问题,但我在 R 中复制了一个 Excel 模型。R 产生的结果与 excel 几乎相同,但总是在 10^-8 范围内存在轻微的%偏差。我认为这是由于数值精度造成的。该模型仅使用基本算术运算。
我的问题是:有没有一种简单的方法可以强制 R 使用与 Excel 相同的数值精度?
可能不会。 R 总是使用双精度(即 8 字节)浮点,并且看起来这也是 Excel 使用的 https://en.wikipedia.org/wiki/Numeric_precision_in_Microsoft_Excel.
如果您只做简单的算术,结果并不相同,这确实有点令人惊讶,但请注意,即使改变算术运算的顺序也可能改变结果(即,浮点算术不是关联的:(a+b)+c != a+(b+c)
,所以如果算术是从左到右进行的,a+b+c != c+b+a
)。尽管可能根本无法知道 Excel 在幕后做了什么this https://support.microsoft.com/en-us/kb/78113(可能?仅适用于 Excel 2003)指出了 Excel 与 R 和大多数其他数值程序使用的 IEEE 754 标准的偏差。
You might能够通过从简单到更复杂的示例进行计算、查看出现分歧的位置并重新安排计算以避免问题来获得精确的等式,但除非这种等式对您极其重要/值得投入大量精力,否则您可能会最好测试一下近似相等。
可以想象,导出到 CSV 会失去精度(例如,参见here http://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel-mso_other/interesting-excel-behavior-csv-numerical-accuracy/28543e16-78e9-4afe-ae64-f9bb412c9039?auth=1).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)