如何保留所有NA?

时间:2016-08-05 14:48:42

标签: r dplyr

我正在尝试filter所有NA。我认为这会有用,但它给了我一张空桌而不是我的预期:

data_frame(var=c(sample(letters[1:2],8,replace=8),NA,NA),
           value=rnorm(10,10,2)) %>% 
           filter(var==is.na(var))
#EXPECTED
# var     value
# <chr>     <dbl>
# 1  <NA>  9.119849
# 2  <NA> 13.236334

2 个答案:

答案 0 :(得分:1)

我们只需要is.nafilter而不是==

d1 %>% 
   filter(is.na(var))
#  var    value
#  <chr>    <dbl>
#1  <NA>  9.119849
#2  <NA> 13.236334

其中&#39; d1&#39;是data_frame

答案 1 :(得分:1)

如果var为NA,那么is.na(var)将为TRUE。所以在那种情况下,var == is.na(var)是:NA == TRUE。这不是真正的陈述,所以它没有通过过滤器。我会让你考虑其他情况,但我认为你的过滤器没有做你认为它正在做的事情。