# [Rd] (PR#7152) Ops.ts returns non-ts object for univariate operations

Prof Brian Ripley ripley at stats.ox.ac.uk
Tue Aug 3 18:53:28 CEST 2004

```How about a statement of the problem and an example?  It is not clear to
me that there is anything here that is not intentional, and the stated
analysis is plain wrong: Ops.ts _is_ called for univariate "-" and _does_
return a time series.

Both +a.ts and -a.ts return a ts.  !a.ts does not, but we expect time
series to be numeric so that is deliberate.  (Copying attributes wily-nily
when changing mode is not a good idea.)

On Tue, 3 Aug 2004 jpalmucci at machineinsight.com wrote:

> Full_Name: Jeff Palmucci
> Version: 1.9.1
> OS: XP
> Submission from: (NULL) (129.44.190.60)
>
>
> Ops.ts returns a non-time series object for univariate operations. Here is a
> patch:
>
> Ops.ts <- function(e1, e2)
> {
>     if(missing(e2)) {
>         ## univariate operator
>       result <- NextMethod(.Generic)
>       attributes(result) <- attributes(e1)
>       result
>     } else if(any(nchar(.Method) == 0)) {
>         ## one operand is not a ts
>         NextMethod(.Generic)
>     } else {
>         nc1 <- NCOL(e1)
>         nc2 <- NCOL(e2)
>         ## use ts.intersect to align e1 and e2
>         e12 <- .cbind.ts(list(e1, e2),
>                          c(deparse(substitute(e1))[1],
>                            deparse(substitute(e2))[1]),
>                          union = FALSE)
>         e1 <- if(is.matrix(e1)) e12[, 1:nc1, drop = FALSE] else e12[, 1]
>         e2 <- if(is.matrix(e2)) e12[, nc1 + (1:nc2), drop = FALSE]
>         else e12[, nc1 + 1]
>         NextMethod(.Generic)
>     }
> }
>
> ______________________________________________
> R-devel at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-devel
>
>

--
Brian D. Ripley,                  ripley at 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 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

```