Replace Inf with NA in Vector & Data Frame in R (Example)

 

In this R tutorial you’ll learn how to clean Inf values from your data.

The article is structured as follows:

Let’s dive into it!

 

Example 1: Replace Inf by NA in Vector

Example 1 shows how to remove infinite values from a vector or array in R. First, let’s create such a vector:

my_vec <- c(1, 7, 3, Inf, 5, Inf)                   # Create example vector
my_vec                                              # Print example vector
# 1   7   3 Inf   5 Inf

Our example vector contains six elements, whereby two of these elements are infinite (i.e. Inf).

Now, we can use the is.infinite function to identify these infinite values and replace them by NA:

my_vec[is.infinite(my_vec)] <- NA                   # Replace Inf in vector by NA
my_vec                                              # Print updated vector
# 1  7  3 NA  5 NA

The previously shown output of the RStudio console shows that our updated vector contains NA values at the positions of Inf in our original vector.

 

Example 2: Replace Inf by NA in Data Frame

Example 2 explains how to replace Inf values in a data frame with NA. Again, we need to create some example data:

my_data <- data.frame(x1 = c(Inf, 2, 3, 4, 5),      # Create example data frame
                      x2 = c(1, Inf, 1, Inf, 1))
my_data                                             # Print example data frame
#    x1  x2
# 1 Inf   1
# 2   2 Inf
# 3   3   1
# 4   4 Inf
# 5   5   1

Our data table consists of five rows and two columns. Both of our variables contain at least one Inf value.

If we want to clean these infinite values, we can use a combination of the do.call, data.frame, lapply, replace, and is.infinite functions. Have a look at the following R code and its output:

my_data <- do.call(data.frame,                      # Replace Inf in data by NA
                   lapply(my_data,
                          function(x) replace(x, is.infinite(x), NA)))
my_data                                             # Print updated data frame
#   x1 x2
# 1 NA  1
# 2  2 NA
# 3  3  1
# 4  4 NA
# 5  5  1

As you can see, we changed the Inf values in all columns to NA.

 

Video & Further Resources

Have a look at the following video which I have published on my YouTube channel. In the video, I show the contents of this tutorial:

 

 

In addition, you could read the other articles which I have published on my website. A selection of tutorials is listed here.

 

In summary: You learned in this tutorial how to exchange infinite values by not available values in an array or a data matrix in the R programming language. Let me know in the comments section below, if you have any further questions. Furthermore, please subscribe to my email newsletter in order to receive regular updates on the newest posts.

 



Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.

Menu
Top