Skip to content

replace NA with 9999 in zoo object

3 messages · stephen sefick, Gabor Grothendieck, PIKAL Petr

#
This is the same set of data that I have been working with for those
in the know.  it is a matrix of ~174 columns and ~70,000 rows.  I have
it as a zoo object, but I could read it in as just a matrix as long as
the date time stamp won't be corrupted.

here is an example of what a column would look like:
1/1/06 12:00, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5,6 ,7, NA
#read in with the following thanks to Gabor
 # chron
+    chron(sub(" .*", "", x), gsub(".* (.*)", "\\1:00", x))
+ }
#this part works just fine and I can plot and analyze data till my
hearts content

I need to replace NA (~700,000+) with the numeric value 9999 for a
beam forming exercise that we are conducting with a geophysicist in
matlab.  I can't get it into excel in the present form because it is
too big.  I was wondering if there was an easy way to do such a thing
in R?

I tried the following:

dat <- sapply(z1, function(x) {x[is.na(x)] <- 9999; x})

and I got the following error:

Error in array(unlist(answer, recursive = FALSE), dim = c(common.len,  :
  'dim' specifies too large an array

thanks for the help

Stephen
#
It works just the same as matrices:
a   b
1   1 999
2 999  10
3   3  11
There are also a number of other methods for handling NAs in zoo:

na.approx
na.contiguous
na.locf
na.spline
na.trim

and na.stinterp in the stinepack package.
On Thu, Mar 6, 2008 at 8:09 AM, stephen sefick <ssefick at gmail.com> wrote:
#
Hi

not sure about zoo but data frame or matrix can be indexed

mat[is.na(mat)] <- 9999

Regards
Petr
petr.pikal at precheza.cz

r-help-bounces at r-project.org napsal dne 06.03.2008 14:09:16:
http://www.R-project.org/posting-guide.html