How to use “Is Not NA” in R?

The “is not NA” function in R allows you to check whether a specific value is not missing. It returns TRUE if the value is not NA (not missing) and FALSE if it is. This function can be used to check for missing values in a data set before performing any calculations or operations on it. This is especially useful when working with large datasets, as it allows you to quickly identify which values are present and which are missing.


You can use the following syntax to return values in R that are not NA values:

#return only values that are not NA
x <- x[!is.na(x)]

The following examples show how to use this syntax with both vectors and data frames in R.

Example 1: Return Values that are Not NA in Vector

The following code shows how to return the values in a vector that are not NA:

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

#return only values that are not NA
x <- x[!is.na(x)]

[1]  1 24  6  9

Example 2: Return Rows that are Not NA in One Column of Data Frame

The following code shows how to return the rows in a data frame that do not have an NA value in a specific column:

#create 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 in z column
df <- df[!(is.na(df$z)), ]

#view data frame
df

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

Example 3: Return Rows that are Not NA in Several Columns

The following code shows how to return the rows in a data frame that do not have an NA value in one of several specific columns:

#create 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 in x or y column
df <- df[!(is.na(df$x)) & !(is.na(df$y)), ]

#view data frame
df

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

Example 4: Return Rows that are Not NA in Any Column

The following code shows how to return the rows in a data frame that do not have an NA value in any column:

#create 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 in any column
df <- na.omit(df)

#view data frame
df

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

x