我用的时候 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
值?