Каково различие в R между идентичным (x, y) и isTRUE (all.equal (x, y))?

Есть ли любое различие между тестированием isTRUE(all.equal(x, y)) и identical(x, y)?

Страница справки говорит:

Не используйте 'all.equal' непосредственно в 'если' выражения - любое использование 'isTRUE (all.equal (....))' или 'идентичный' при необходимости.

но это, "если соответствующий" оставляет меня в сомнении. Как я решаю, какой из этих двух является соответствующим?

31
задан smci 2 February 2017 в 08:24
поделиться

2 ответа

all.equal тесты на почти равенство , в то время как идентичный является более точным (например, он не допускает различий и сравнивает тип хранилища). Из? Идентично:

Функция all.equal также иногда используется для проверки равенства путь, но был предназначен для чего-то другое: позволяет различия в числовых результатах.

И одна из причин, по которой вы должны заключить all.equal в isTRUE , заключается в том, что all.equal сообщит о различиях, а не просто вернет ЛОЖЬ .

29
ответ дан 27 November 2019 в 22:17
поделиться

идентичный более суетлив. Например:

> identical(as.double(8), as.integer(8))
[1] FALSE
> all.equal(as.double(8), as.integer(8))
[1] TRUE
> as.double(8) == as.integer(8)
[1] TRUE
13
ответ дан 27 November 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: