From pgilbert at bank-banque-canada.ca  Wed Jul 25 16:31:06 2007
From: pgilbert at bank-banque-canada.ca (Paul Gilbert)
Date: Wed, 25 Jul 2007 10:31:06 -0400
Subject: [Rd] [R] aggregate.ts
In-Reply-To: <Pine.LNX.4.44.0707250237430.16266-100000@disco.wu-wien.ac.at>
References: <Pine.LNX.4.44.0707250237430.16266-100000@disco.wu-wien.ac.at>
Message-ID: <46A75EAA.6020405@bank-banque-canada.ca>

(moved from r-help)

Achim Zeileis wrote:

>On Wed, 25 Jul 2007, laimonis wrote:
>
>  
>
>>Consider the following scrap of code:
>>    
>>
>
>...slightly modified to
>  x1 <- ts(1:24, start = c(2000, 10), freq = 12)
>  x2 <- ts(1:24, start = c(2000, 11), freq = 12)
>
>and then
>  y1 <- aggregate(x1, nfreq = 4)
>gives the desired result while
>  y2 <- aggregate(x2, nfreq = 4)
>probably does not what you would like it to do. 
>

I've been caught by this before, and complained before.  It does not do 
what most people that work with economic time series would expect.  (One 
might argue that not all time series are economic, but other time series 
don't usually fit with ts very well.)  At the very least aggregate 
should issue a warning.  Quarterly observations are for quarters of the 
year, so just arbitrarily grouping in 3 beginning with the first 
observation is *extremely* misleading, even if it is documented.

[ BTW, there is a bug in the print method here (R-2.5.1 on Linux) :
 >   y2 <- aggregate(x2, nfreq = 4) 
 >
 > y2
Error in rep.int("", start.pad) : invalid number of copies in rep.int()
 > traceback()
5: rep.int("", start.pad)
4: as.vector(data)
3: matrix(c(rep.int("", start.pad), format(x, ...), rep.int("",
       end.pad)), nc = fr.x, byrow = TRUE, dimnames = list(dn1,
       dn2))
2: print.ts(c(6L, 15L, 24L, 33L, 42L, 51L, 60L, 69L))
1: print(c(6L, 15L, 24L, 33L, 42L, 51L, 60L, 69L))
]

....

>Currently, the "zoo" implementation allows this: Coercing back and forth
>gives:
>  library("zoo")
>  z1 <- as.ts(aggregate(as.zoo(x1), as.yearqtr, sum))
>  z2 <- as.ts(aggregate(as.zoo(x2), as.yearqtr, sum))
>  
>
This is better, but still potentially misleading. I would prefer a 
default  NA when only some of the observations are available for a 
quarter  (and the syntax is a bit cumbersome for something one needs to 
do fairly often).

Paul

>where z1 is identical to y1, and z2 is what you probably want.
>
>hth,
>Z
>
>______________________________________________
>R-help at stat.math.ethz.ch mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>and provide commented, minimal, self-contained, reproducible code.
>  
>
====================================================================================

La version fran?aise suit le texte anglais.

------------------------------------------------------------------------------------

This email may contain privileged and/or confidential inform...{{dropped}}



[Rd] [R] aggregate.ts
Paul Gilbert