R: 如何像Excel中那样定义舍入函数?

Afi*_*ari 1 excel r rounding

我刚刚了解到,与 Excel 相比,R 或 Python 定义舍入函数的方式不同。

撇开统计数据不谈,我的业务用户主要是 Excel 用户。这导致了一些混乱,因为 R/Python 脚本生成的数字可能由于这种舍入约定而有所不同。

在我看来,当 Excel 需要计算 1.5、2.5、3.5 等数字时,它总是“向上舍入”,而 R/Python 会四舍五入到最接近的偶数。

可能还有其他我不知道的假设可以区分 Excel 和 R/Python。

有没有办法在 R 中实现 Excel 的精确舍入函数?

在 Excel 中

在此输入图像描述

在R中

在此输入图像描述

Mif*_*iff 6

根据观察到的行为,roundExcel 中以 0.5 结尾的数字从零舍入,可以在 R 中复制:

> x <- c(-1.5, -0.5, 0.5, 1.5, 2.5, 3.5)
> round(x+2*sign(x)*.Machine$double.eps)
# [1] -2 -1  1  2  3  4
Run Code Online (Sandbox Code Playgroud)

  • 您应该将这个答案发布在骗局上 - 它比那里的大多数答案都要好。 (4认同)