Skip to content

Irregular Time Series Issue

4 messages · A Mani, Spencer Graves, Gabor Grothendieck

#
Hello,
           I have an irregular time series of the form :

Time Data Time1 Data1 ....
1       b        1         e
7      g         4        i
NA  NA       5         k
NA  NA      NA      NA ...

(the columns have varying length of NAs after a certain point)
Converting this to regular time series with Pastecs does not seem to
work, when I see the
entire data as a single series. So I remove the NAs and deal with one
series at a time in a loop.

Any suggestions ?


Thanks

A. Mani
#
Have you considered using 'corCAR1' with 'lme' in the 'nlme' 
package? 

      Hope this helps. 
      Spencer Graves
p.s.  If you are not familiar with this, I highly recommend Pinheiro, 
J.C., and Bates, D.M. (2000) Mixed-Effects Models in S and S-PLUS 
(Springer).  The "~R\library\nlme\scripts" directory contains "ch01.R", 
"ch02.R", etc., which contain R scripts to reproduce virtually all the 
examples in the text.  These are especially valuable for R, because the 
book was written before 'nlme' was ported to R, and there are a few 
changes for which the version in the book gives the wrong answer, while 
following the script gives the correct answer.
A Mani wrote:
#
The following reads in the series as a data frame
and then na.omit's the NA's and converts to zoo.
Optionally we can merge them back together
aligning them on the times.

library(zoo)
Lines <- "Time Data Time1 Data1
1       b        1         e
7      g         4        i
NA  NA       5         k
NA  NA      NA      NA
"
DF <- read.table(textConnection(Lines), header = TRUE)
f <- function(i) { DF <- na.omit(DF[i + 0:1]); zoo(DF[,2], DF[,1]) }
ix <- seq(1, ncol(DF), 2)
ser <- lapply(ix, f)
names(ser) <- names(DF)[-ix]

# optional
do.call(merge, ser)
On Fri, Mar 7, 2008 at 5:38 PM, A Mani <a.manigs at gmail.com> wrote:
#
I noticed a problem with the merging factors so try
using character variables instead:

library(zoo)
Lines <- "Time Data Time1 Data1
1       b        1         e
7      g         4        i
NA  NA       5         k
NA  NA      NA      NA
"
DF <- read.table(textConnection(Lines), header = TRUE, as.is = TRUE)
f <- function(i) { DF <- na.omit(DF[i + 0:1]); zoo(DF[,2], DF[,1]) }
ix <- seq(1, ncol(DF), 2)
ser <- lapply(ix, f)
names(ser) <- names(DF)[-ix]

# optional
do.call(merge, ser)


On Fri, Mar 7, 2008 at 8:35 PM, Gabor Grothendieck
<ggrothendieck at gmail.com> wrote: