How to Replace Inf Values with NA in R

[This article was first published on Data Science Tutorials, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

The post How to Replace Inf Values with NA in R appeared first on Data Science Tutorials

What do you have to lose?. Check out Data Science tutorials here Data Science Tutorials.

Replace Inf Values with NA in R, you can substitute NA values for Inf values using the techniques listed below:

Method 1: Replace Inf with NA in Vector

x[is.infinite(x)] <- NA

Example 1: Substitute NA for Inf in the Vector

The code below demonstrates how to swap out all Inf values in a vector for NA values.

x <- c(14, 102, Inf, 8, Inf, 9, 12, 3, 202, Inf)
x[is.infinite(x)] <- NA
x
[1] 14 102 NA 8 NA 9 12 3 202 NA

You’ll see that the original vector’s Inf values have all been swapped out for NA values.

How to Find Quartiles in R? – Data Science Tutorials

Method 2: Replace Inf with NA in All Columns of the Data Frame

df[sapply(df, is.infinite)] <- NA

Example 2: Change all columns in the data frame from Inf to NA

In every column of a data frame, Inf values can be changed to NA values using the code below:

Let’s create a data frame

df <- data.frame(x=c(14, 15, 25, 34, Inf, 18, Inf),
                 y=c(10, Inf, Inf, 43, 45, 55, 88),
                 z=c(Inf, 55, 45, 65, 35, 102, 14))
df
   x   y   z
1  14  10 Inf
2  15 Inf  55
3  25 Inf  45
4  34  43  65
5 Inf  45  35
6  18  55 102
7 Inf  88  14

Now we can replace Inf values with NA values in all columns

Algorithm Classifications in Machine Learning – Data Science Tutorials

df[sapply(df, is.infinite)] <- NA
df
  x  y   z
1 14 10  NA
2 15 NA  55
3 25 NA  45
4 34 43  65
5 NA 45  35
6 18 55 102
7 NA 88  14

Observe that NA values have been substituted for the Inf values in each column of the data frame.

Method 3: Replace Inf with NA in Specific Columns of the Data Frame

df[c('col1', 'col2')][sapply(df[c('col1', 'col2')], is.infinite)] <- NA

Example 3: In certain columns of a data frame, replace Inf with NA

The code below demonstrates how to change Inf values in particular columns of a data frame to NA values.

Boosting in Machine Learning:-A Brief Overview (datasciencetut.com)

Now let’s create a data frame

df <- data.frame(x=c(44, 55, 15, 34, Inf, 88, Inf),
                 y=c(110, Inf, Inf, 33, 55, 58, 88),
                 z=c(Inf, 75, 85, 6, 33, 12, 114))
df
   x   y   z
1  44 110 Inf
2  55 Inf  75
3  15 Inf  85
4  34  33   6
5 Inf  55  33
6  88  58  12
7 Inf  88 114

Now replace Inf values with NA values in columns ‘x’ and ‘z’ only

df[c('x', 'z')][sapply(df[c('x', 'z')], is.infinite)] <- NA
df
   x   y   z
1 44 110  NA
2 55 Inf  75
3 15 Inf  85
4 34  33   6
5 NA  55  33
6 88  58  12
7 NA  88 114

The NA values have been substituted for the Inf values in the ‘x’ and ‘y’ columns, as you can see.

The Inf values in column ‘y’ have not changed, nevertheless.

Replace NA with Zero in R – Data Science Tutorials

The post How to Replace Inf Values with NA in R appeared first on Data Science Tutorials

Learn how to expert in the Data Science field with Data Science Tutorials.

To leave a comment for the author, please follow the link and comment on their blog: Data Science Tutorials.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)