Skip to content

Newbie Time Series Questions

6 messages · Jason Turner, Achim Zeileis, Robert Schick +1 more

#
On Thu, Oct 17, 2002 at 12:39:08PM -0700, Robert Schick wrote:
looks like a data frame, then.  You've got to R it's not a multivariate
time series; R thinks it's one series for Oct, one for Nov, etc.
So, convert to matrix, and you'll need to:

1) transpose it, so the *column* vectors are sequential in time (by default,
when R unrolls a matrix to a vector, it stacks the columns, not the rows).
2) convert the matrix to a vector, so R knows it's univariate.
3) *then* convert to time series.  whew.  ;-)

klam.ts <- ts(as.vector(t(klam.flow)),frequency=12,start=c(1961,10))

klam.ts
      Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
1961                                              1461 1716 2524
1962 1773 1906 2005 1756 1575 1387  983 1094 1382 1907 2253 1985
1963 1907 1769 1676 2634 1386  929  766  968 1309      

If that's wrong - i.e. each row in klam.flow is one year and the columns
are just in a funny order - you'll have to juggle the columns before step 
1 above.  Like so:
Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
1961 1773 1906 2005 1756 1575 1387  983 1094 1382 1461 1716 2524
1962 1907 1769 1676 2634 1386  929  766  968 1309 1907 2253 1985

Cheers

Jason
#
I have a data set of monthly river flows from 1960-2000, which are
similar in structure to the nottem data:
Oct  Nov  Dec  Jan  Feb   Mar  Apr  May  Jun  Jul  Aug  Sep
1961 1461 1716 2524 1773 1906  2005 1756 1575 1387  983 1094 1382
1962 1907 2253 1985 1907 1769  1676 2634 1386  929  766  968 1309
...

I tried plotting with
Which quickly led me to realize the data aren't a "ts" object, as it
plotted 40 stacked lines instead of one long series. I've tried
converting to this using ts or as.ts, e.g.
But this seems to explode the number of time series, e.g.
Oct  Nov  Dec  Jan  Feb   Mar  Apr  May  Jun  Jul  Aug  Sep
Jan 1960 1461 1716 2524 1773 1906  2005 1756 1575 1387  983 1094 1382
Feb 1960 1907 2253 1985 1907 1769  1676 2634 1386  929  766  968 1309
Mar 1960 2511 2852 3661 2103 2189  2548 3841 2937  857  743 1058 1574
...

Any advice on how to properly create the ts object so it looks and plots
a la Figure 13.15 in VR?

I'm using R 1.60 on a Windows 2000 box.

Thanks
#
Robert Schick wrote:
If I understand your data correctly they start in October 1961? Then you
should do something like

R> klam.flow2 <- ts(as.vector(t(klam.flow)), start = c(1961, 10), freq =
12)
R> plot(klam.flow2)

This turns your time series to one long vector first and then adds the
"ts" properties.
Z
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
#
Thanks - That did the trick. Curious why the following doesn't quite
work:
klam.ts <- ts(data=klam.flow, start=c(1960,10), frequency=12)

The above doesn't make the vector.

Rob
Achim Zeileis wrote:

  
    
#
Robert Schick wrote:
It assumes that klam.flow contains 12 different time series *each* with
frequency 12 and generates a multiple time series of class "mts". This
is what you need if you have for example flow measurements of several
rives or measurements at several locations.
Z
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
#
On Thu, 17 Oct 2002, Robert Schick wrote:

            
Is that starting in Oct 1961 or what?
I think you have a data frame or matrix.

If a matrix, try

klam.ts <- ts(as.vectior(t(klam.flow)), start=c(1961,10), frequency=12)

If a data frame, try as.matrix and then the above.
The issue is to start with a `ts' object.  The above may help, but your
descriptions are not really consistent.