Re: [Rd] Subsetting time series

From: Timothy H. Keitt <>
Date: Wed 11 Aug 2004 - 00:22:12 EST

The basic concepts here seem to be "implicitly indexed," with a start and step, and "explicitly indexed," where each value has a time (or space) stamp (I've left out for the moment whether these need to be monotonic). Since implicitly indexed can mimic explicitly indexed simply by generating the time stamps on the fly, it makes sense for implicitly indexed to inherit from explicitly indexed. Subsampling of an implicitly indexed array can then safely return an explicitly indexed object from ].implicite.series (or whatever naming is appropriate).

THK Martin Maechler said:
>>>>>> "BDR" == Prof Brian Ripley <>
>>>>>> on Tue, 10 Aug 2004 05:47:28 +0100 (BST) writes:
> BDR> On Tue, 10 Aug 2004, Ross Ihaka wrote:
> >> Rob Hyndman wrote:
> >> > When part of a time series is extracted, the time series
> component is
> >> > lost. e.g.,
> >> > x <- ts(1:10)
> >> > x[1:4]
> >> >
> >> > It would be nice if there was a subsetting function [.ts to avoid
> this
> >> > problem. However, it is beyond my R-coding ability to produce
> such a
> >> > thing. Is someone willing to do it?
> BDR> There is a [.ts, in src/library/stats/R/ts.R, and it is
> documented
> BDR> (?"[.ts").
> >> Have you had a look at "window"? The problem with "["
> >> its that it can produce non-contiguous sets of values.
> BDR> Yes.
> indeed. window() is what we have been advocation for a long
> time now ... (but see below).
> BDR> If you look in the sources for [.ts you will see,
> BDR> commented, the code that was once there to handle cases
> BDR> where the index was evenly spaced. But it was removed
> BDR> long ago in favour of window(). I tried to consult the
> BDR> logs, but it seems that in the shift from CVS to SVN
> BDR> recently I can't get at them. I think the rationale
> BDR> was that x[ind] should always produce an object of the
> BDR> same class.
> well, that can't have been the only rationale since now
> x[ind] is *not* of the same class - when the "ts" property is
> lost in any case.
> I don't much like the current behavior of "[.ts" either.
> It should either work by returning the "ts" object in the
> equidistant case and give a warning (at least) in the
> non-equidistant case.
> OTOH, intuitively, when 'ind' has length 1, x[ind] should just
> give a number... [grumble..]
> But maybe it's only a very small performance hit when that
> continues to carry the "ts" class attribute along.
> If we think of the data.frame analogue, we might consider
> defining "[[.ts" for extracting numbers and "[.ts" to always
> return a time series or an error.
> But that is probably too much incompatible to current behavior.
> Martin
> ______________________________________________
> mailing list

Timothy H. Keitt  
Assistant professor
Section of Integrative Biology
University of Texas at Austin

______________________________________________ mailing list
Received on Wed Aug 11 00:27:54 2004

This archive was generated by hypermail 2.1.8 : Wed 03 Nov 2004 - 22:45:05 EST