R:all.equal的替代品?

R: alternatives to all.equal?

提问人:Carl Witthoft 提问时间:2/22/2013 最后编辑:csgillespieCarl Witthoft 更新时间:2/22/2013 访问量:561

问:

虽然是一个非常强大的工具,具有大量信息丰富的响应字符串,但我想要一个等效的函数,它只需返回 TRUE/FALSE 即可实现近乎相等。(我知道标准技巧,例如)。我编写了以下代码片段,但想知道我是否忽略了其中一个 R 包中的类似函数。all.equalidentical(all.equal(foo,bar), TRUE)

approxeq <- function(x,y,tolerance = .Machine$double.eps ^ 0.5,...) {
   #Note: better input validation should be written
   if (length(x) != length(y)) stop('lengths must be equal')
   checkit <- abs(x-y) < tolerance
    return(invisible(checkit))
}

和之间的主要区别在于,前者为我提供了逐个元素的相等性测试结果。我不是说这更好,只是不同。 那么,有谁知道在已发布的软件包中是否有类似(并且可能更强大)的功能?approxeqall.equal

r 浮动精度

评论

7赞 Joshua Ulrich 2/22/2013
isTRUE(all.equal(x,y))是你提到的“伎俩”的简写版本。
0赞 Sven Hohenstein 2/22/2013
如果经常使用以下解决方法:.mapply(x, y, FUN = all.equal) == TRUE
1赞 daroczig 2/22/2013
对于输入验证,我会做类似的事情stopifnot(length(x) == length(y), is.numeric(x), is.numeric(y))

答: 暂无答案