NA: ‘Not Available’ / Missing Values in R

NA stands for “Not Available and represents a missing value in R“. You can use functions like is.na(), na.omit(), na.exclude(), or na.fail() to check or handle missing values.

Example 1: Use NA in vector to fill the missing values

Let’s define a vector with an NA value and use the is.na() function to check which component has an NA value; in that case, it returns TRUE as a logical vector; other values will be FALSE.

rv <- c(11, NA, 18, 19, 21)
rv
is.na(rv)

Output

[1] 11 NA 18 19 21
[1] FALSE TRUE FALSE FALSE FALSE

As you can see, our second vector component contains an NA value.

To find the missing values in R, use the is.na() method, which returns the logical vector with TRUE. In our example, is.na() method returns TRUE to that second component, and all the others are FALSE.

Example 2: Using NA in Matrix to fill the missing values.

Let’s fill the empty values of the matrix with NA values and see the output.

rv <- c(11, NA, 18, 19, 21, 46, NA, 29, 20)
mtrx <- matrix(rv, nrow = 3, ncol = 3)
mtrx

Output

     [,1] [,2] [,3]
[1,]  11   19   NA
[2,]  NA   21   29
[3,]  18   46   20

To check the NA values in Matrix, use the is.na() function.

rv <- c(11, NA, 18, 19, 21, 46, NA, 29, 20)
mtrx <- matrix(rv, nrow = 3, ncol = 3)
is.na(mtrx)

Output

      [,1]  [,2]  [,3]
[1,] FALSE FALSE  TRUE
[2,] TRUE  FALSE  FALSE
[3,] FALSE FALSE  FALSE

Example 3: Applying mathematical operation to NA values

If you add any numeric numbers to NA, then it will result in NA.

21 + NA
sqrt(NA)
NA + NA

Output

[1] NA
[1] NA
[1] NA

And we get the NA in all the outputs, but if we add NA + NaN, it will return NaN.

NaN + NA

Output

[1] NaN

Example 4: How to exclude NA values from the analysis

If you are calculating a mean of vector and that vector contains NA values, then you can exclude that NA value and calculate the mean of the remaining values. But if you don’t exclude the NA, it will return NA in the output.

rv <- c(1, 2, NA, 4, 5)
mean(rv)

Output

[1] NA

To exclude the NA value, pass the na.rm=TRUE as a second parameter in the mean() function.

rv <- c(1, 2, NA, 4, 5)
mean(rv, na.rm = TRUE)

Output

[1] 3

That means it has a calculated mean of 4 values(1, 2, 4, 5) whose sum is 12 and the mean is 3.

To remove the NA values from a vector, use the na.omit() function. The na.omit() method returns the object with listwise deletion of missing values.

rv <- c(1, 2, NA, 4, 5)
na.omit(rv)

Output

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

As you can see in the output that NA is omitted.

Leave a Comment