首页 > 解决方案 > R中的求和函数给出不可信的结果

问题描述

我有以下从基本data.frame 中获取的数字向量。我想做一个简单的求和,它给了我奇怪的结果。

x 
[1] -1.06 -5.36  4.74 -5.66  1.64 -2.86  8.04  2.54 -1.36 -0.66

sum(x)
[1] -7.105427e-15

我尝试使用 cumsum 来查看问题是否来自特定的值之一。我想问题出在最后一个值上,但我不明白为什么。

cumsum(x)
1] -1.060000e+00 -6.420000e+00 -1.680000e+00 -7.340000e+00 -5.700000e+00
 [6] -8.560000e+00 -5.200000e-01  2.020000e+00  6.600000e-01 -7.105427e-15

我已经重新启动了 R 会话。我正在使用版本 R 版本 3.6.3 (2020-02-29)。我正在使用这些库来读取和重塑数据。

library(readxl)
library(dplyr)
library(tidyr)

使用特定库或以特定方式显示某些数字的方式时,是否有已知的事情要寻找?提前致谢。

标签: rbase

解决方案


作为 Ben Bolker 共享的链接,如果您查看添加内容:

> -1.06 + -5.36 + 4.74 + (-5.66) + 1.64 + (-2.86) + 8.04 + 2.54 + (-1.36)
[1] 0.66

现在添加最后一个值 -0.66:

> -1.06 + -5.36 + 4.74 + (-5.66) + 1.64 + (-2.86) + 8.04 + 2.54 + (-1.36) + (-.66)
[1] -0.00000000000000144329

只是为了交叉检查:

> near(-1.06 + -5.36 + 4.74 + (-5.66) + 1.64 + (-2.86) + 8.04 + 2.54 + (-1.36), .66)
[1] TRUE
> 

推荐阅读