Понимание логических операций в R - PullRequest
0 голосов
/ 08 марта 2019

Почему следующая операция приводит к небулевому результату?

sum <- TRUE + FALSE
sum
[1] 1

Как получить результат в булевом виде?

1 Ответ

1 голос
/ 08 марта 2019

В R числовое представление значений logical() равно 0 и 1 для FALSE и TRUE соответственно.Когда вы добавляете их, они неявно преобразуются в числа, поэтому TRUE+TRUE вернет 2, а TRUE-TRUE вернет 0.

Если вы хотите получить логический результат, используйте логический оператор| или &.

Обратите внимание , что R различает векторизованные логические операторы и скаляр.| и & имеют значение для набора: c(FALSE,FALSE,TRUE) & c(TRUE,FALSE,TRUE) вернет c(FALSE,FALSE,TRUE).Принимая во внимание, что c(FALSE,FALSE,TRUE) && c(TRUE,FALSE,TRUE) вернет только FALSE.

Чтобы явно преобразовать в логический, вы можете использовать as.logical(TRUE + FALSE) для возврата логического вывода в нечисловой форме.

...