Re: [R] time series by calendar week

From: Gabor Grothendieck <>
Date: Tue, 08 Jul 2008 14:37:29 -0400

On Tue, Jul 8, 2008 at 10:25 AM, collonil <> wrote:
> hello,
> i cant find a solution on this (might be) easy problem:
> i have a time serie by carlandar weeks, so for every carlendar week i have a
> value. now i would like to use the functions for time series, so i change
> structur to a time serie with
> cam <- ts(number,start=c(2001,1),deltat=7/365)
> or
> cam <- ts(number,start=c(2001,1),frequency=52)
> the problem on it is, that 2004 had 53 calendar weeks, which is not
> recognized there.
> it follows with using a saisonal structure the weeks are shifting. f.e.
> first week in 2005 is conected with the second week in 2004.
> with the first function leap years are not recognized.
> is there another function which is recognizing irregularities in the
> calendar?

I assume the main problem is that you want to convert it to a series that has an integral number of cycles per year. To do that some approximation will be required such as:

Here is an example using a grid of 52 points per year:

# Suppose we have this data:
z <- zooreg(1:100 + rnorm(100), start = as.Date("2001-01-01"), deltat = 7)

# new.freq() converts dates to a grid of freq points per year
# yd is sequence of dates of firsts of years
# yy is years of the same sequence
# last line interpolates so dates, d, are transformed to year + frac of year
new.freq <- function(d, freq = 52) {
	y <- as.Date(cut(range(d), "years")) + c(0, 367)
	yd <- seq(y[1], y[2], "year")
	yy <- as.numeric(format(yd, "%Y"))
	ceiling(freq * approx(yd, yy, xout = d)$y) / freq

# take last point in each period
aggregate(z, new.freq, tail, 1)

# or, take mean of all points in each period aggregate(z, new.freq, mean) mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code. Received on Tue 08 Jul 2008 - 18:42:09 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 08 Jul 2008 - 19:31:51 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive