在 R 中,我发现必须转换易于阅读的代码有点烦人,例如:
if (det(A) == 1) # not always working because of floating point precision
...
to
if (abs(det(A) - 1) < .Machine$double.eps) # working but bad for readability
...
问题:R 中是否有一个内置运算符可以测试值是否等于“最多.Machine$double.eps
错误”?类似:
if (det(A) ==~ 1) # TRUE even if det(A) = 1 + 1e-17
...
一种方法是声明一个函数%=~
像这样。
`%=~%` <- function(x, y, tol = .Machine$double.eps^0.5) abs(x - y) < tol
2 %=~% (2+1e-15)
#[1] TRUE
然后您可以使用容差tol
你的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)