Это потому, что результат чего-либо == NA
равен NA
.Четный NA == NA
равен NA
.
Вот результат vec_1 == "a"
-
[1] TRUE FALSE NA FALSE FALSE
, а NA
не TRUE
или FALSE
таким образом, когда вы устанавливаете что-либо на NA
, вы получаете NA
.Проверьте это -
vec_1[NA]
[1] NA NA NA NA NA
При работе с NA
, R
пытается дать наиболее информативный ответ, т.е. T | NA
возвращает TRUE
, потому что не имеет значения, что такое NA
.Вот еще несколько примеров -
T | NA
[1] TRUE
F | NA
[1] NA
T & NA
[1] NA
F & NA
[1] FALSE
R не может проверить равенство с NA
.В вашем случае вы можете использовать оператор %in%
-
5 %in% NA
[1] FALSE
"a" %in% NA
[1] FALSE
vec_1[vec_1 %in% "a"]
[1] "a"