HOWTO · R

How to Omit NA in R

This tutorial demonstrates how to remove unnecessary NA values using na.omit() in R.

The na.omit() method from R omits all unnecessary values from a data frame in R. NA denotes these values.

This tutorial demonstrates how to use na.omit in R.

Use na.omit() to Remove NA Values From a Vector in R

na.omit() can remove NA values from a vector; see example.

#define the vector
a <- c(13, NA, NA, 7, NA, 19)

print(a)

#remove NA values from vector using na.omit
a <- na.omit(a)

a

The code first prints the vector with NA values and then omits the NA values. See output:

[1] 13 NA NA  7 NA 19

[1] 13  7 19
attr(,"na.action")
[1] 2 3 5
attr(,"class")
[1] "omit"

The output for na.omit is the remaining values and the index numbers of NA values; we can get the simple remaining values by using the code below.

#define the vector
a <- c(13, NA, NA, 7, NA, 19)

print(a)

#remove NA values from vector using na.omit, as.numeric
a <- as.numeric(na.omit(a))

a

The output will be simple.

[1] 13 NA NA  7 NA 19

[1] 13  7 19

Use na.omit() to Remove Rows With NA Values From a Data Frame in R

na.omit() can remove the rows with NA values from a data frame. See example:

Delftstack = data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                        LastName=c(NA, 'Cena', 'Chandler', 'McCool', 'Nitro'),
                        Id=c(101, 102, NA, 104, NA),
                        Designation=c('CEO', 'Project Manager', NA , 'Junior Dev', 'Intern'))


# Data frame before omit
Delftstack

# Use omit
Delftstack <- na.omit(Delftstack)

# Data frame after omit
Delftstack

The code above will remove all the rows with NA values from the given data frame. See output:

      Name LastName  Id     Designation
1     Jack     <NA> 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler  NA            <NA>
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro  NA          Intern

      Name LastName  Id     Designation
2     John     Cena 102 Project Manager
4 Michelle   McCool 104      Junior Dev

Use na.omit() to Remove Rows With NA Values From Specific Columns in R

na.omit() can be specified based on the columns; we can pass the column name to remove rows with NA values based on that specific column. See example:

Delftstack = data.frame(Name=c('Jack', 'John', 'Mike', 'Michelle', 'Jhonny'),
                        LastName=c(NA, 'Cena', 'Chandler', 'McCool', 'Nitro'),
                        Id=c(101, 102, NA, 104, NA),
                        Designation=c('CEO', 'Project Manager', NA , 'Junior Dev', 'Intern'))


# Data frame before omit
Delftstack

# Use omit
Delftstack <- Delftstack[!(is.na(Delftstack$Id)), ]

# Data frame after omit
Delftstack

The code removes the rows with NA values based on the Id column. See output:

      Name LastName  Id     Designation
1     Jack     <NA> 101             CEO
2     John     Cena 102 Project Manager
3     Mike Chandler  NA            <NA>
4 Michelle   McCool 104      Junior Dev
5   Jhonny    Nitro  NA          Intern

      Name LastName  Id     Designation
1     Jack     <NA> 101             CEO
2     John     Cena 102 Project Manager
4 Michelle   McCool 104      Junior Dev