В 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)
для возврата логического вывода в нечисловой форме.