Hullo I may have missed something blindingly obvious here. I'm using xts to handle some timeseries data. I've got daily measurements for 100 years. If I try to reduce the error rate by taking means of each month, I'm getting what at first sight appears to be conflicting information. Here's a small subset to show the problem: A small set of data: > vv x 2010-02-01 6.1 2010-02-02 6.1 2010-02-03 6.0 2010-02-04 6.0 2010-02-05 6.0 2010-02-06 6.1 2010-02-07 6.1 2010-02-08 6.1 2010-02-09 6.1 2010-02-10 6.2 Aggregate: > aggregate (vv, as.yearmon (index (vv)), mean) Feb 2010 6.08 That's fine. But if I explicitly convert to xts (which the answer ought to be, so this should be a noop), the values shift back by one month: > xts (aggregate (vv, as.yearmon (index (vv)), mean)) x Jan 2010 6.08 Just to confirm the classes: > class (aggregate (vv, as.yearmon (index (vv)), mean)) [1] "zoo" > class (vv) [1] "xts" "zoo" And to confirm that as.yearmon is returning the right month: > as.yearmon (index (vv)) [1] "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" [7] "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" This run was on a stock Fedora 10 build: > version _ platform i386-redhat-linux-gnu arch i386 os linux-gnu system i386, linux-gnu status major 2 minor 10.0 year 2009 month 10 day 26 svn rev 50208 language R version.string R version 2.10.0 (2009-10-26) And from installed.packages (): xts NA NA "GPL-3" "2.10.0" zoo NA NA "GPL-2" "2.10.0" Any help gratefully received. Tim
I find the following even more confusing as I thought that xts was a subclass of zoo and I'd expected that the conversion would have been more transparent > aggregate (vv, as.yearmon(index(vv)), mean) Feb 2010 6.08 > xts (aggregate (vv, as.yearmon(index(vv)), mean)) x Jan 2010 6.08 > zoo (aggregate (vv, as.yearmon(index(vv)), mean)) x Feb 2010 6.08 On 8 Apr 2010, at 15:53, Tim Coote wrote:> Hullo > I may have missed something blindingly obvious here. I'm using xts > to handle some timeseries data. I've got daily measurements for 100 > years. If I try to reduce the error rate by taking means of each > month, I'm getting what at first sight appears to be conflicting > information. Here's a small subset to show the problem: > > A small set of data: > > vv > x > 2010-02-01 6.1 > 2010-02-02 6.1 > 2010-02-03 6.0 > 2010-02-04 6.0 > 2010-02-05 6.0 > 2010-02-06 6.1 > 2010-02-07 6.1 > 2010-02-08 6.1 > 2010-02-09 6.1 > 2010-02-10 6.2 > > Aggregate: > > aggregate (vv, as.yearmon (index (vv)), mean) > > Feb 2010 6.08 > > That's fine. But if I explicitly convert to xts (which the answer > ought to be, so this should be a noop), the values shift back by one > month: > > xts (aggregate (vv, as.yearmon (index (vv)), mean)) > x > Jan 2010 6.08 > > Just to confirm the classes: > > class (aggregate (vv, as.yearmon (index (vv)), mean)) > [1] "zoo" > > > class (vv) > [1] "xts" "zoo" > > And to confirm that as.yearmon is returning the right month: > > as.yearmon (index (vv)) > [1] "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" > [7] "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" > > This run was on a stock Fedora 10 build: > > version > _ > platform i386-redhat-linux-gnu > arch i386 > os linux-gnu > system i386, linux-gnu > status > major 2 > minor 10.0 > year 2009 > month 10 > day 26 > svn rev 50208 > language R > version.string R version 2.10.0 (2009-10-26) > > And from installed.packages (): > xts NA NA "GPL-3" "2.10.0" > zoo NA NA "GPL-2" "2.10.0" > > Any help gratefully received. > > Tim > > ______________________________________________ > R-help at r-project.org 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.
I find the following even more confusing as I thought that xts was a subclass of zoo and I'd expected that the conversion would have been more transparent > aggregate (vv, as.yearmon(index(vv)), mean) Feb 2010 6.08 > xts (aggregate (vv, as.yearmon(index(vv)), mean)) x Jan 2010 6.08 > zoo (aggregate (vv, as.yearmon(index(vv)), mean)) x Feb 2010 6.08 On 8 Apr 2010, at 15:53, Tim Coote wrote: On 8 Apr 2010, at 15:53, Tim Coote wrote:> Hullo > I may have missed something blindingly obvious here. I'm using xts > to handle some timeseries data. I've got daily measurements for 100 > years. If I try to reduce the error rate by taking means of each > month, I'm getting what at first sight appears to be conflicting > information. Here's a small subset to show the problem: > > A small set of data: > > vv > x > 2010-02-01 6.1 > 2010-02-02 6.1 > 2010-02-03 6.0 > 2010-02-04 6.0 > 2010-02-05 6.0 > 2010-02-06 6.1 > 2010-02-07 6.1 > 2010-02-08 6.1 > 2010-02-09 6.1 > 2010-02-10 6.2 > > Aggregate: > > aggregate (vv, as.yearmon (index (vv)), mean) > > Feb 2010 6.08 > > That's fine. But if I explicitly convert to xts (which the answer > ought to be, so this should be a noop), the values shift back by one > month: > > xts (aggregate (vv, as.yearmon (index (vv)), mean)) > x > Jan 2010 6.08 > > Just to confirm the classes: > > class (aggregate (vv, as.yearmon (index (vv)), mean)) > [1] "zoo" > > > class (vv) > [1] "xts" "zoo" > > And to confirm that as.yearmon is returning the right month: > > as.yearmon (index (vv)) > [1] "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" > [7] "Feb 2010" "Feb 2010" "Feb 2010" "Feb 2010" > > This run was on a stock Fedora 10 build: > > version > _ > platform i386-redhat-linux-gnu > arch i386 > os linux-gnu > system i386, linux-gnu > status > major 2 > minor 10.0 > year 2009 > month 10 > day 26 > svn rev 50208 > language R > version.string R version 2.10.0 (2009-10-26) > > And from installed.packages (): > xts NA NA "GPL-3" "2.10.0" > zoo NA NA "GPL-2" "2.10.0" > > Any help gratefully received. > > Tim > > ______________________________________________ > R-help at r-project.org 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.Tim Coote tim at coote.org vincit veritas