[Rd] bug in aggregate.ts

Felix Andrews felix at nfrac.org
Tue Apr 20 02:41:44 CEST 2010


Hi,

I am getting unexpected behaviour from aggregate.ts(). The 'ndeltat'
argument is effectively being reduced by 1 in some cases, even when it
is an integer, with the result that the blocks to be aggregated are
not of the expected size, and also that the end() of the aggregated
series is much later than the end() of the original series.

rawts <- ts(rep(1:10, each = 5), start = 1)

## ndeltat = 5, but splits into blocks of 4 rather than 5:

agts <- aggregate(rawts, ndeltat = 5,
             FUN = function(x) {str(x);mean(x)})
 int [1:4] 1 1 1 1
 int [1:4] 1 2 2 2
 int [1:4] 2 2 3 3
 int [1:4] 3 3 3 4
 int [1:4] 4 4 4 4
 int [1:4] 5 5 5 5
 int [1:4] 5 6 6 6
 int [1:4] 6 6 7 7
 int [1:4] 7 7 7 8
 int [1:4] 8 8 8 8
 int [1:4] 9 9 9 9
 int [1:4] 9 10 10 10

## Adding a small amount onto ndeltat bumps it up to blocks of 5:

agts2 <- aggregate(rawts, ndeltat = 5 + getOption("ts.eps") / 2,
             FUN = function(x) {str(x);mean(x)})
 int [1:5] 1 1 1 1 1
 int [1:5] 2 2 2 2 2
 int [1:5] 3 3 3 3 3
 int [1:5] 4 4 4 4 4
 int [1:5] 5 5 5 5 5
 int [1:5] 6 6 6 6 6
 int [1:5] 7 7 7 7 7
 int [1:5] 8 8 8 8 8
 int [1:5] 9 9 9 9 9
 int [1:5] 10 10 10 10 10

## Compare start / end / deltat / length for the two series.

sapply(list(`ndeltat=5` = agts, `ndeltat=5+` = agts2),
  function(x) c(start = start(x)[1], end = end(x)[1],
                   deltat = deltat(x), length = length(x)))

#        ndeltat=5 ndeltat=5+
# start          1   1.000000
# end           56  46.000045         ## `rawts` ends at 50
# deltat         5   5.000005
# length        12  10.000000


sessionInfo()
R version 2.11.0 RC (2010-04-18 r51771)
i386-pc-mingw32

locale:
[1] LC_COLLATE=English_Australia.1252  LC_CTYPE=English_Australia.1252
[3] LC_MONETARY=English_Australia.1252 LC_NUMERIC=C
[5] LC_TIME=English_Australia.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base



-- 
Felix Andrews / 安福立
Postdoctoral Fellow
Integrated Catchment Assessment and Management (iCAM) Centre
Fenner School of Environment and Society [Bldg 48a]
The Australian National University
Canberra ACT 0200 Australia
M: +61 410 400 963
T: + 61 2 6125 4670
E: felix.andrews at anu.edu.au
CRICOS Provider No. 00120C
-- 
http://www.neurofractal.org/felix/



More information about the R-devel mailing list