понимание применения функции: x> y - z & x <y + z - PullRequest
0 голосов
/ 04 декабря 2018

Я не особо разбираюсь в математике и пытаюсь понять некоторый 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, которые определяют дни во временном ряду),и эпсилон установлен в 1e-10.Я вижу, что он будет возвращать истину / ложь, если значения одинаковы / различны, но для чего нужна функция, подобная этой, вместо того, чтобы использовать что-то похожее ().Как влияет значение эпсилона на сравнение?

Спасибо,

1 Ответ

0 голосов
/ 04 декабря 2018

Дело не в том, что они точно равны, а в сравнении для грубого равенства, как в "val1 находится в пределах epsilon от val2".

Классический пример полезностичто-то вроде этого, вероятно, числа с плавающей запятой, где (например) 0.1 + 0.2 != 0.3, но 0.1 + 0.2 находится в пределах epsilon от 0.3 для некоторого небольшого epsilon, что достаточно часто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...