I am trying to run some trading strategies in R. I have downloaded some stock prices and calculated returns. The new return dataset has a number of -inf, NaN, and NA values.
Inf, NA and NaN are matched by !is.finite, for example
a <- c(1, Inf, NA, NaN)
a[!is.finite(a)] <- 0
# a is now [1, 0, 0, 0]
I don't know too much about manipulating zoo objects, but for the example above
log_ret[1, !is.finite(log_ret)] <- 0
works. In your actual data you will have to loop over all rows. There might be a zoo-specific way of doing this.
Edit: The zoo-specific way is log_ret[which(!is.finite(log_ret))] <- 0.