In R, I have an operation which creates some `Inf` values when I transform a dataframe. 

I would like to turn these `Inf` values into `NA` values. The code I have is slow for large data, is there a faster way of doing this? 

Say I have the following dataframe: 

```
dat <- data.frame(a=c(1, Inf), b=c(Inf, 3), d=c("a","b"))

```

The following works in a single case: 

```
 dat[,1][is.infinite(dat[,1])] = NA

```

So I generalized it with following loop

```
cf_DFinf2NA <- function(x)
{
    for (i in 1:ncol(x)){
          x[,i][is.infinite(x[,i])] = NA
    }
    return(x)
}

```

But I don't think that this is really using the power of R.