[Rd] Multivariate time series in R 3 vs R 2

Gabor Grothendieck ggrothendieck at gmail.com
Sat Oct 26 15:00:41 CEST 2013


On Wed, Oct 23, 2013 at 2:56 PM, Андрей Парамонов <cmr.pent at gmail.com> wrote:
> Hello!
>
> Recently I got report that my package mar1s doesn't pass checks any more on
> R 3.0.2. I started to investigate and found the following difference in
> multivariate time series handling in R 3.0.2 compared to R 2 (I've checked
> on 2.14.0).
>
> Suppose I wish to calculate seasonal component for time series. In case of
> multivariate time series, I wish to process each column independently. Let
> f be a simple (trivial) model of seasonal component:
>
> f <- function(x)
>   return(ts(rep(0, length(x)), start = 0, frequency = frequency(x)))
>
> In previous versions of R, I used the following compact and efficient
> expression to calculate seasonal component:
>
> y <- do.call(cbind, lapply(x, f))
>
> It worked equally good for univariate and multivariate time series:
>
>> R.Version()$version.string
> [1] "R version 2.14.0 (2011-10-31)"
>> t <- ts(1:10, start = 100, frequency = 10)
>>
>> x <- t
>> y <- do.call(cbind, lapply(x, f))
>> y
> Time Series:
> Start = c(0, 1)
> End = c(0, 10)
> Frequency = 10
>  [1] 0 0 0 0 0 0 0 0 0 0
>>
>> x <- cbind(t, t)
>> y <- do.call(cbind, lapply(x, f))
>> y
> Time Series:
> Start = c(0, 1)
> End = c(0, 10)
> Frequency = 10
>     t t
> 0.0 0 0
> 0.1 0 0
> 0.2 0 0
> 0.3 0 0
> 0.4 0 0
> 0.5 0 0
> 0.6 0 0
> 0.7 0 0
> 0.8 0 0
> 0.9 0 0
>
> But in version 3, I get some frustrating results:
>
>> R.Version()$version.string
> [1] "R version 3.0.2 (2013-09-25)"
>> t <- ts(1:10, start = 100, frequency = 10)
>>
>> x <- t
>> y <- do.call(cbind, lapply(x, f))
>> y
> Time Series:
> Start = 0
> End = 0
> Frequency = 1
>   structure(0, .Tsp = c(0, 0, 1), class = "ts")
> 0                                             0
>   structure(0, .Tsp = c(0, 0, 1), class = "ts")
> 0                                             0
>   structure(0, .Tsp = c(0, 0, 1), class = "ts")
> 0                                             0
>   structure(0, .Tsp = c(0, 0, 1), class = "ts")
> 0                                             0
>   structure(0, .Tsp = c(0, 0, 1), class = "ts")
> 0                                             0
>   structure(0, .Tsp = c(0, 0, 1), class = "ts")
> 0                                             0
>   structure(0, .Tsp = c(0, 0, 1), class = "ts")
> 0                                             0
>   structure(0, .Tsp = c(0, 0, 1), class = "ts")
> 0                                             0
>   structure(0, .Tsp = c(0, 0, 1), class = "ts")
> 0                                             0
>   structure(0, .Tsp = c(0, 0, 1), class = "ts")
> 0                                             0
>>


I get the same results in R-2.14.0 and R-3.02.  They both give the
result shown above with the structures in the output.  I used
"R version 2.14.0 (2011-10-31)".

Try starting a clean session in R 2.14.0 using:

R --vanilla

and try it again.



More information about the R-devel mailing list