How to Use na.omit in R (With Examples)

na.omit is an R function used to remove any rows containing missing values (NA) from a given dataset. It takes an object such as a data frame, matrix, or vector as an argument and returns an object with all the missing values removed. To use na.omit in R, simply call the function on your data set and assign the output to a new object. Examples include removing missing values from a data frame using na.omit() and removing missing values from a vector using na.omit().


You can use the na.omit() function in R to remove any incomplete cases in a vector, matrix, or data frame.

This function uses the following basic syntax:

#omit NA values from vector
x <- na.omit(x)

#omit rows with NA in any column of data frame
df <- na.omit(df)

#omit rows with NA in specific column of data frame
df <- df[!(is.na(df$column)), ]

The following examples show how to use this function in practice.

Example 1: Omit NA Values from Vector

The following code shows how to omit all NA values from a vector:

#define vector
x <- c(1, 24, NA, 6, NA, 9)

#omit NA values from vector
x <- na.omit(x)

x

[1]  1 24  6  9
attr(,"na.action")
[1] 3 5
attr(,"class")
[1] "omit"

The first line in the output shows the vector without NA values while the next two lines show additional information about the location of the NA values.

We can use the following code to just return the vector without the NA values:

#define vector
x <- c(1, 24, NA, 6, NA, 9)

#omit NA values from vector
x <- as.numeric(na.omit(x))

x

[1]  1 24  6  9

Example 2: Omit Rows with NA in Any Column of Data Frame

The following code shows how to omit all rows with NA values in any column of a data frame :

#define data frame
df <- data.frame(x=c(1, 24, NA, 6, NA, 9),
                 y=c(NA, 3, 4, 8, NA, 12),
                 z=c(NA, 7, 5, 15, 7, 14))

#view data frame
df

   x  y  z
1  1 NA NA
2 24  3  7
3 NA  4  5
4  6  8 15
5 NA NA  7
6  9 12 14

#omit rows with NA value in any column data frame
df <- na.omit(df)

#view data frame 
df

   x  y  z
2 24  3  7
4  6  8 15
6  9 12 14

Example 3: Omit Rows with NA in Specific Column of Data Frame

To omit rows with NA values in a specific column of a data frame, it’s actually easier to use the is.na() function as follows:

#define data frame
df <- data.frame(x=c(1, 24, NA, 6, NA, 9),
                 y=c(NA, 3, 4, 8, NA, 12),
                 z=c(NA, 7, 5, 15, 7, 14))

#view data frame
df

   x  y  z
1  1 NA NA
2 24  3  7
3 NA  4  5
4  6  8 15
5 NA NA  7
6  9 12 14

#remove rows with NA value in x column
df <- df[!(is.na(df$x)), ]

#view data frame 
df

   x  y  z
1  1 NA NA
2 24  3  7
4  6  8 15
6  9 12 14

x