R: удивительное поведение `тождественного` - PullRequest
0 голосов
/ 02 апреля 2019

В R я наткнулся на это удивительное поведение функции identical().

С простым ==:

(ncol(dpx)-1) == length(test)

ИСТИНА

Но с identical:

identical((ncol(dpx)-1) , length(test))

FALSE

Они оба имеют тип integer (по 81).

Что происходит?

1 Ответ

1 голос
/ 02 апреля 2019

identical - это «безопасный и надежный способ проверки двух объектов на соответствие точно ». ncol(dpx) - 1 возвращает числовой вектор, так как 1 является числовым, а length возвращает целое число.

Как указал @amatsuo_net, мы могли бы немного изменить код и преобразовать 1 в тип integer.

identical((ncol(iris) + 1L - 1L), length(iris))
# [1] TRUE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...