了解函数的应用:x> y-z&x <y + z

时间:2018-12-04 16:56:58

标签: r math

我对数学不是特别擅长,并且正在尝试理解一些R代码。有一个名为“ compareforequality”的函数,如下所示:

compareforequality <- function(val1, val2, epsilon)
{
    val1 = as.numeric(val1);
    val2 = as.numeric(val2);
    equal = val1 > (val2 - epsilon) & val1 < val2 + epsilon;
    equal
}

其中val1和val2是表示时间点的数字向量(通常是-10到1000之间的整数,用于标识时间序列中的天),而epsilon设置为1e-10。我可以看到,如果值相同/不同,它将返回true / false,但是这样的函数的用途是什么,而不是使用same()一样。 epsilon的值对比较有什么影响?

谢谢

1 个答案:

答案 0 :(得分:1)

重点不是要使它们完全相等,而是要进行粗略的相等比较,例如“ val1epsilon的{​​{1}}之内。”

诸如此类的有用性的经典示例可能是浮点数,其中(例如)val2,但是0.1 + 0.2 != 0.30.1 + 0.2的{​​{1}}之内一些小的epsilon,就足够了。