Почему логический оператор для символа против числового возвращает ИСТИНА / ЛОЖЬ? - PullRequest
0 голосов
/ 07 октября 2019

Пожалуйста, смотрите ниже пример. Логический оператор < работает с символами и цифрами, а в некоторых случаях возвращает TRUE. Я в замешательстве, потому что в моем смысле он должен вернуть NA или по крайней мере FALSE. Это дизайн R?
И я был бы признателен, если бы вы показали мне простой альтернативный метод. (Я могу решить эту проблему, используя класс проверки пользовательских функций до логического суждения. Есть ли лучшие решения?)

"(abc" < 0              # TRUE
"(abc" < -1             # FALSE
"abc" < 9999999999      # FALSE
"abc" < Inf             # TRUE

1 Ответ

1 голос
/ 07 октября 2019

Скорее всего, R выполняет преобразование символов RHS вашего неравенства. То есть R фактически делает следующие сравнения:

"(abc" < "0"
"(abc" < "-1"
"abc" < "999999999"
"abc" < Inf

[1] TRUE
[1] FALSE
[1] FALSE
[1] TRUE

Обратите внимание, что выходные данные соответствуют вашему текущему выходу, который использует числовые литералы на RHS.

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