ts in R (again)

Prof Brian D Ripley ripley@stats.ox.ac.uk
Mon, 16 Aug 1999 22:50:52 +0100 (BST)


On Tue, 17 Aug 1999, Ross Ihaka wrote:

> On Fri, Aug 13, 1999 at 12:27:13AM +0100, Prof Brian D Ripley wrote:
> > Two other things I would like opinions on:
> > 
> > 1) Given multiple series, plot.ts plots them on a single y scale, and
> > plot.mts uses separate plots with a common x. Each has disadvantages.
> > Should we try to switch between the styles depending on the inputs,
> > and if so how?
> 
> Genuine query:  How do I do I get a simple lagged variable plot like
> 
> 	plot(lag(x), x)
> 	lines(lowess(lag(x), x))
> 
> We don't seem to have any simple way of doing this.  Do we need a special
> function for this (with a panel function for effects like lowess/loess)?

As of a few days ago, you can do precisely plot(lag(x), x), as plot.ts has
a `scatterplot' method, and that aligns the time bases. You probably want
plot(lag(x), x, type="p"), but I have not changed the previous default.

The lowess thing is a little more difficult. I think you want

xy <- ts.intersect(z=lag(x), x)
lines(lowess(xy[,1], xy[,2]))

That's the trick: set up all the objects you want, ts.intersect them
and unpick.  Some functions like plot.ts and Ops.ts do this for you.

> > 2) I think the current R style of
> > 
> > >  y <- ts(1:120, end=10-1e-7,frequency=12)
> > > y
> >    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
> > 0   NA   1   2   3   4   5   6   7   8   9  10  11
> > 1   12  13  14  15  16  17  18  19  20  21  22  23
> > 2   24  25  26  27  28  29  30  31  32  33  34  35
> > 3   36  37  38  39  40  41  42  43  44  45  46  47
> > 4   48  49  50  51  52  53  54  55  56  57  58  59
> > 5   60  61  62  63  64  65  66  67  68  69  70  71
> > 6   72  73  74  75  76  77  78  79  80  81  82  83
> > 7   84  85  86  87  88  89  90  91  92  93  94  95
> > 8   96  97  98  99 100 101 102 103 104 105 106 107
> > 9  108 109 110 111 112 113 114 115 116 117 118 119
> > 10 120  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
> > 
> > is confusing, not least as it is it impossible to distinguish NAs at the
> > ends from NAs generated by printing. I had a variant in library ts that
> > used format to get blanks. Should I make that the default?
> 
> Yes.

Done on Saturday.

> I'm a little bit worried about having libraries overide "base"
> methods.  For efficiency reasons it would be better to attach libraries
> after the "base" libraries.  That would mean that attempted overrides
> would not work.

There are now no overrides in library(ts), but it was very useful to have
them when testing things out. S has the `first' flag which is normally
false, but can be used to force overrides. I find this useful, not least to
ensure that my library comes in front of a broken one. (Someone out there
with a package on CRAN thinks plot.profile is not the name of a plot method
for profile objects, for example, even though that is in the White Book.)

On the basis of feedback so far, I have altered plot.ts to have a plot.type
flag that defaults to the plot.mts style, and altered print.ts to use
blanks not NAs.

-- 
Brian D. Ripley,                  ripley@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel 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-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._