R - Понимание поведения && - PullRequest
0 голосов
/ 04 ноября 2019

Почему c(T, T, T) && c(NULL, F, F) оценивается как [1] FALSE, а T && NULL выдает ошибку Error in T && NULL : invalid 'y' type in 'x && y'?

Похоже, что в первом примере && пропускает первую пару аргументов T && NULL и возвращает оценку второй пары вместо T && F. Но у меня всегда было впечатление, что && оценивает только первую пару и поэтому предсказал, что она выдаст ошибку, как во втором примере.

1 Ответ

1 голос
/ 04 ноября 2019

Null не является допустимым логическим типом. Вы должны использовать is.null().

Результат:

 > c(NULL, F, F)
[1] FALSE FALSE

Поэтому я бы предложил использовать is.null()

> is.null(NULL)
[1] TRUE
...