Проблема также в том, что ==
возвращает NA
там, где есть NA
элементы. Кроме того, NA
не "NA"
указан
v1 <- c(NA, 3, 5, NA)
v1 == "NA"
#[1] NA FALSE FALSE NA
или без кавычек
v1 == NA
#[1] NA NA NA NA
Правильный путь is.na
или complete.cases
complete.cases(v1) # returns TRUE where there are no NA
#[1] FALSE TRUE TRUE FALSE
is.na(v1) # returns TRUE where there are NAs
#[1] TRUE FALSE FALSE TRUE
Если мы проверим ?
Пропущенные значения (NA) и значения NaN считаются несопоставимыми даже для самих себя, поэтому сравнения с ними всегда приводят к NA. Пропущенные значения также могут возникать при сравнении символьных строк, и одна из них недопустима в текущей локали сопоставления.