&& не работает поэлементно, а использует короткое замыкание .Идея состоит в том, что RHS && может быть недействительным, если LHS - ЛОЖЬ, но это нормально, так как RHS никогда не оценивается в этом случае.Например, здесь RHS может генерировать ошибку, если она была оценена, но это никогда не происходит, поскольку LHS - ЛОЖЬ.
x <- "A"
is.numeric(x) && x + 1 < 0
Если бы это не работало таким образом, нам пришлось бы использовать более длинное:
if (is.numeric(x)) x + 1 < 0 else FALSE