首页 > 解决方案 > R中的求和函数没有给出预期的答案

问题描述

我刚开始使用 R 并被困在这个错误上。

fuel_efficiency<-c(28.2, 28.3, 28.4, 28.5, 29.0)
mean=28.48
deviation<-(fuel_efficiency-mean)
deviation
sum(deviation)

我编写了这段代码来从燃油效率向量的元素中减去平均值以获得偏差向量。然后我试图得到更新的偏差向量的总和。

总和答案应该返回 0 而是给出类似-3.552714e-15

偏差向量按预期正确打印。

#[1] -0.28 -0.18 -0.08  0.02  0.52

标签: rsum

解决方案


这只是舍入错误,-3.552714e-15是一个非常非常小的数字:计算机在处理十进制数字方面是出了名的差,(甚至可以说他们只是不能准确地做到这一点)。为了克服这个问题,R 提供了一个检查相等性的函数:

all.equal(sum(deviation), 0)

这将返回:

[1] TRUE

推荐阅读