我有一个简单的错误,是来自R中的十进制数字的近似值。我猜这是由于内存中的保留字节或类似的东西引起的。
在执行我的R代码时,我将这些变量的中间值打印出来,只是为了检查错误的出处:
prop_individues_stades[S] = 4.626294e-05
repart_pop_total = 1
pb1 = 0.9999537
pb2 = 1
frac = 4.626294e-05
奇怪的是frac
是这样计算的:
frac = repart_pop_total * (pb2 - pb1)
如果我直接在R中签入,我会得到:
frac = 4.63e-05
我知道它来自小数点后一位,但是当我得到prop_individues_stades[S] = 4.626294e-05
和frac = 4.626294e-05
时,下一步是prop_individues_stades[S] - frac
,那么我得到零,程序停止。
没有近似误差的理想值应该是:
prop_individues_stades[S] = 4.6262936325314E-5
repart_pop_total = 1
pb1 = 0.99995373706367
pb2 = 1
frac = 4.6262936325259E-5
然后是prop_individues_stades[S] - frac = 5.5511151231258E-17
,程序将继续...
我尝试使用功能round(frac, ...)
,但没有帮助。
有时候,小的价值使事情变得重要:)谢谢您的所有想法/解决方案/建议...