How to remove NA values with dplyr filter

497    Asked by Dhruvtiwari in SQL Server , Asked on Jul 27, 2021

Below is the code:

df <- tibble(
    ~col1, ~col2, ~col3,
    1, 2, 3
    1, NA, 3
    NA, 2, 3

I can remove all NA observations with drop_na():

df %>% drop_na()

Or remove all NA observations in a single column (col1 for example):

df %>% drop_na(col1)

Why can't I just use a regular != filter pipe?

df %>% filter(col1 != NA)

Why do we have to use a special function from tidyr to remove NAs? How do we filter out na in r?


Answered by Daniel Cameron

This has nothing to do specifically with dplyr::filter. But, any comparison with NA, including NA==NA will return NA.

R does not know what you are doing in your analysis.

So, basically, it does not allow comparison operators to think of NA as a value.

Your Answer


Parent Categories