From joh@nn@k|e|nbub @end|ng |rom gm@||@com  Thu Dec  5 17:00:57 2019
From: joh@nn@k|e|nbub @end|ng |rom gm@||@com (Johann R. Kleinbub)
Date: Thu, 5 Dec 2019 17:00:57 +0100
Subject: [Rd] Maybe bug? Using non-integer frequencies in stats::ts
In-Reply-To: <CALTZUioLKO3ynX0swMnwygMYOxtTS2UvPbCP1K4NDPyrfr+x4A@mail.gmail.com>
References: <CALTZUioLKO3ynX0swMnwygMYOxtTS2UvPbCP1K4NDPyrfr+x4A@mail.gmail.com>
Message-ID: <CALTZUirEBDc_jqebSuvLbpEh3h0J8HJp6g0BRGvmpJHYcODRsg@mail.gmail.com>

It's been three months without an answer, is it ok to thread bump?
Would someone provide a pointer?

Thank you for your consideration,
Johann


On Mon, 16 Sep 2019 at 15:53, Johann R. Kleinbub <johann.kleinbub at gmail.com>
wrote:
>
> I am developing a package to analyse physiological time-series and I
thought that the most reliable and robust solution was to base it on the
native stats::ts class. In my domain it is common to express series
frequencies as samples-per-second. So ts(..., frequency=10) would mean a
signal sampled 10 times every second, and ts(..., frequency = 1) a signal
sampled every second. Following this logic, a few slower signals are
sampled every 5 seconds (or more), resulting in a frequency of e.g. 0.2
> Nowhere in the documentation is stated that the frequency must be an
integer value, but using fractional values gives inconsistent results.
> For instance, in this example, foo and bar are identical, just with
start-end values shifted by 1. Yet when extracting an arbitrary window, the
'bar' series gives error.
>
> x = 1:22
> foo = ts(x, start = 1.5, end = 106.5, frequency = 0.2)
> bar = ts(x, start = 2.5, end = 107.5, frequency = 0.2)
>
> window(foo, start = 20, end = 30, extend=TRUE)
>
> # Time Series:
> # Start = 20
> # End = 25
> # Frequency = 0.2
> # [1] 5 6
>
> window(bar, start = 20, end = 30, extend=TRUE)
>
> # Error in attr(y, "tsp") <- c(ystart, yend, xfreq) :
> #   invalid time series parameters specified
>
> The reason is in the rounding procedures for ystart and yend at the end
of the stats::window function. For the 'foo' series the ystart and yend
values are calculated as: c(20, 25), whereas for the 'bar' series, they
become c(20, 30) although the window should be of the very same size in
both cases. (A further discussion on the example is at:
https://stackoverflow.com/questions/57928054 )
> Should I report a bug or am I misunderstanding something?
>
> --
> Johann R. Kleinbub, PhD
> University of Padova
> FISPPA Dep. - Section of Applied Psychology
> Cell: +39 3495986373



--
Johann R. Kleinbub, PhD
University of Padova
FISPPA Dep. - Section of Applied Psychology
Cell: +39 3495986373

	[[alternative HTML version deleted]]



[Rd] Maybe bug? Using non-integer frequencies in stats::ts
Johann R. Kleinbub