Когда я использую filter
из пакета dplyr
для снижения уровня факторной переменной, filter
также снижает значения NA
. Вот пример:
library(dplyr)
set.seed(919)
(dat <- data.frame(var1 = factor(sample(c(1:3, NA), size = 10, replace = T))))
# var1
# 1 <NA>
# 2 3
# 3 3
# 4 1
# 5 1
# 6 <NA>
# 7 2
# 8 2
# 9 <NA>
# 10 1
filter(dat, var1 != 1)
# var1
# 1 3
# 2 3
# 3 2
# 4 2
Это не кажется идеальным - я хотел только отбросить строки, где var1 == 1
.
Похоже, это происходит потому, что любое сравнение с NA
возвращает NA
, которое затем filter
падает. Так, например, filter(dat, !(var1 %in% 1))
дает правильные результаты. Но есть ли способ сказать filter
не отбрасывать значения NA
?