From ggrothendieck at gmail.com  Wed Oct 22 15:21:08 2008
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Wed, 22 Oct 2008 09:21:08 -0400
Subject: [Rd] R 2.8.0 qqnorm produces error with object of class zoo?
In-Reply-To: <48FF215E.80807@biostat.ku.dk>
References: <B89F0CE41D45644A97CCC93DF548C1C314C4EC88@GBHENXMB02.corp.amvescap.net>
	<B89F0CE41D45644A97CCC93DF548C1C314C4ECFB@GBHENXMB02.corp.amvescap.net>
	<48FF215E.80807@biostat.ku.dk>
Message-ID: <971536df0810220621w65286e3emc1efe749afa866b5@mail.gmail.com>

xtfrm.zoo has been added to the development version of zoo and should
address this.  It is available on R-Forge or in the meantime you can just
add this line to your code:

xtfrm.zoo <- coredata


On Wed, Oct 22, 2008 at 8:49 AM, Peter Dalgaard
<P.Dalgaard at biostat.ku.dk> wrote:
> Pfaff, Bernhard Dr. wrote:
>> It seems, that in my previous emails the attached output files got deleted, hence these are now copied below:
>>
>>
> (If the MIME type is wrong, then that will happen.)
>
> Anyways, the root cause seems to be the new function .gt() which is
> related to
>
>    o   New generic function xtfrm() as an auxiliary helper for
>        sort(), order() and rank().  This should return a numeric
>        vector that sorts in the same way as its input.  The default
>        method supports any class with ==, > and is.na() methods but
>        specific methods can be much faster.
>
>        As a side-effect, rank() will now work better on classed
>        objects, although possibly rather slowly.
>
> Here, "better" may be in the eyes of the beholder, for
>
>> dax[3]==dax[6]
> Data:
> logical(0)
>
> Index:
> integer(0)
>
> and accordingly
>
>> rank(dax)
> Error in if (xi == xj) 0L else if (xi > xj) 1L else -1L :
>  argument is of length zero
>
> which is the error that you are seeing.
>
> What to do about it is a bit dubious. Obviously, we don't want to "fix"
> .gt() so that it automatically unclasses objects, and I assume that zoo
> has its reasons for not wanting to compare series with different
> indices. So I suppose that either the user must unclass, or zoo define
> rank.zoo.
>
>> For R version 2.7.2:
>> ====================
>> R version 2.7.2 (2008-08-25)
>> Copyright (C) 2008 The R Foundation for Statistical Computing
>> ISBN 3-900051-07-0
>>
>> R ist freie Software und kommt OHNE JEGLICHE GARANTIE.
>> Sie sind eingeladen, es unter bestimmten Bedingungen weiter zu verbreiten.
>> Tippen Sie 'license()' or 'licence()' f?r Details dazu.
>>
>> R ist ein Gemeinschaftsprojekt mit vielen Beitragenden.
>> Tippen Sie 'contributors()' f?r mehr Information und 'citation()',
>> um zu erfahren, wie R oder R packages in Publikationen zitiert werden k?nnen.
>>
>> Tippen Sie 'demo()' f?r einige Demos, 'help()' f?r on-line Hilfe, oder
>> 'help.start()' f?r eine HTML Browserschnittstelle zur Hilfe.
>> Tippen Sie 'q()', um R zu verlassen.
>>
>>
>> Invesco colors have been created!
>> Usage: "col = invcolor[1]", or "col = invcolor['blue']" etc.
>> Type: 'invcolor' to see its definition.
>>
>> [Vorher gesicherter Workspace wiederhergestellt]
>>
>>
>>> library(zoo)
>>>
>>
>> Attache Paket: 'zoo'
>>
>>
>>       The following object(s) are masked from package:base :
>>
>>        as.Date.numeric
>>
>> Warning message:
>> Paket 'zoo' wurde unter R Version 2.8.0 gebaut
>>
>>> sessionInfo()
>>>
>> R version 2.7.2 (2008-08-25)
>> i386-pc-mingw32
>>
>> locale:
>> LC_COLLATE=German_Germany.1252;LC_CTYPE=German_Germany.1252;LC_MONETARY=German_Germany.1252;LC_NUMERIC=C;LC_TIME=German_Germany.1252
>>
>> attached base packages:
>> [1] stats     graphics  utils     datasets  grDevices methods   base
>>
>> other attached packages:
>> [1] zoo_1.5-4
>>
>> loaded via a namespace (and not attached):
>> [1] grid_2.7.2      lattice_0.17-13
>>
>>> search()
>>>
>>  [1] ".GlobalEnv"        "package:zoo"       "package:stats"
>>  [4] "package:graphics"  "package:utils"     "package:datasets"
>>  [7] "package:grDevices" "package:methods"   "Autoloads"
>> [10] "package:base"
>>
>>> packageDescription("zoo")
>>>
>> Package: zoo
>> Version: 1.5-4
>> Date: 2008-07-09
>> Title: Z's ordered observations
>> Author: Achim Zeileis, Gabor Grothendieck
>> Maintainer: Achim Zeileis <Achim.Zeileis at R-project.org>
>> Description: An S3 class with methods for totally ordered indexed
>>         observations. It is particularly aimed at irregular time series
>>         of numeric vectors/matrices and factors. zoo's key design goals
>>         are independence of a particular index/date/time class and
>>         consistency with with ts and base R by providing methods to
>>         extend standard generics.
>> Depends: R (>= 2.4.1), stats
>> Suggests: chron, fCalendar, fSeries, its, tseries, lattice,
>>         strucchange, DAAG, xts
>> Imports: stats, utils, graphics, grDevices, lattice
>> LazyLoad: yes
>> License: GPL-2
>> URL: http://R-Forge.R-project.org/projects/zoo/
>> Packaged: Wed Jul 9 18:28:07 2008; zeileis
>> Built: R 2.8.0; ; 2008-10-16 00:01:11; windows
>>
>> -- File: C:/R/package/zoo/Meta/package.rds
>>
>>> data(EuStockMarkets)
>>> dax <- as.zoo(EuStockMarkets[1:10, "DAX"])
>>> daxr <- diff(log(dax))
>>> identical(as.vector(qnorm(daxr)), qnorm(coredata(daxr)))
>>>
>> [1] TRUE
>> Warning messages:
>> 1: In qnorm(p, mean, sd, lower.tail, log.p) : NaNs wurden erzeugt
>> 2: In qnorm(p, mean, sd, lower.tail, log.p) : NaNs wurden erzeugt
>>
>>> qqnorm(coredata(daxr))
>>> qqnorm(daxr)
>>>
>>> proc.time()
>>>
>>        User      System verstrichen
>>        1.65        0.13        2.97
>>
>> For R version 2.8.0:
>> ====================
>>  version 2.8.0 (2008-10-20)
>> Copyright (C) 2008 The R Foundation for Statistical Computing
>> ISBN 3-900051-07-0
>>
>> R ist freie Software und kommt OHNE JEGLICHE GARANTIE.
>> Sie sind eingeladen, es unter bestimmten Bedingungen weiter zu verbreiten.
>> Tippen Sie 'license()' or 'licence()' f?r Details dazu.
>>
>> R ist ein Gemeinschaftsprojekt mit vielen Beitragenden.
>> Tippen Sie 'contributors()' f?r mehr Information und 'citation()',
>> um zu erfahren, wie R oder R packages in Publikationen zitiert werden k?nnen.
>>
>> Tippen Sie 'demo()' f?r einige Demos, 'help()' f?r on-line Hilfe, oder
>> 'help.start()' f?r eine HTML Browserschnittstelle zur Hilfe.
>> Tippen Sie 'q()', um R zu verlassen.
>>
>>
>> Invesco colors have been created!
>> Usage: "col = invcolor[1]", or "col = invcolor['blue']" etc.
>> Type: 'invcolor' to see its definition.
>>
>> [Vorher gesicherter Workspace wiederhergestellt]
>>
>>
>>> library(zoo)
>>>
>>
>> Attache Paket: 'zoo'
>>
>>
>>       The following object(s) are masked from package:base :
>>
>>        as.Date.numeric
>>
>>
>>> sessionInfo()
>>>
>> R version 2.8.0 (2008-10-20)
>> i386-pc-mingw32
>>
>> locale:
>> LC_COLLATE=German_Germany.1252;LC_CTYPE=German_Germany.1252;LC_MONETARY=German_Germany.1252;LC_NUMERIC=C;LC_TIME=German_Germany.1252
>>
>> attached base packages:
>> [1] stats     graphics  utils     datasets  grDevices methods   base
>>
>> other attached packages:
>> [1] zoo_1.5-4
>>
>> loaded via a namespace (and not attached):
>> [1] grid_2.8.0      lattice_0.17-15
>>
>>> search()
>>>
>>  [1] ".GlobalEnv"        "package:zoo"       "package:stats"
>>  [4] "package:graphics"  "package:utils"     "package:datasets"
>>  [7] "package:grDevices" "package:methods"   "Autoloads"
>> [10] "package:base"
>>
>>> packageDescription("zoo")
>>>
>> Package: zoo
>> Version: 1.5-4
>> Date: 2008-07-09
>> Title: Z's ordered observations
>> Author: Achim Zeileis, Gabor Grothendieck
>> Maintainer: Achim Zeileis <Achim.Zeileis at R-project.org>
>> Description: An S3 class with methods for totally ordered indexed
>>         observations. It is particularly aimed at irregular time series
>>         of numeric vectors/matrices and factors. zoo's key design goals
>>         are independence of a particular index/date/time class and
>>         consistency with with ts and base R by providing methods to
>>         extend standard generics.
>> Depends: R (>= 2.4.1), stats
>> Suggests: chron, fCalendar, fSeries, its, tseries, lattice,
>>         strucchange, DAAG, xts
>> Imports: stats, utils, graphics, grDevices, lattice
>> LazyLoad: yes
>> License: GPL-2
>> URL: http://R-Forge.R-project.org/projects/zoo/
>> Packaged: Wed Jul 9 18:28:07 2008; zeileis
>> Built: R 2.8.0; ; 2008-10-16 00:01:11; windows
>>
>> -- File: C:/R/package/zoo/Meta/package.rds
>>
>>> data(EuStockMarkets)
>>> dax <- as.zoo(EuStockMarkets[1:10, "DAX"])
>>> daxr <- diff(log(dax))
>>> identical(as.vector(qnorm(daxr)), qnorm(coredata(daxr)))
>>>
>> [1] TRUE
>> Warning messages:
>> 1: In qnorm(p, mean, sd, lower.tail, log.p) : NaNs wurden erzeugt
>> 2: In qnorm(p, mean, sd, lower.tail, log.p) : NaNs wurden erzeugt
>>
>>> qqnorm(coredata(daxr))
>>> qqnorm(daxr)
>>>
>> Fehler in if (xi == xj) 0L else if (xi > xj) 1L else -1L :
>>   Argument hat L?nge 0
>> Calls: qqnorm ... xtfrm.default -> as.vector -> rank -> switch -> .gt
>> Ausf?hrung angehalten
>>
>>
>>
>>> Dear list-reader,
>>>
>>> by running the following script:
>>>
>>> library(zoo)
>>> sessionInfo()
>>> search()
>>> packageDescription("zoo")
>>> data(EuStockMarkets)
>>> dax <- as.zoo(EuStockMarkets[1:10, "DAX"])
>>> daxr <- diff(log(dax))
>>> identical(as.vector(qnorm(daxr)), qnorm(coredata(daxr)))
>>> qqnorm(coredata(daxr))
>>> qqnorm(daxr)
>>>
>>>
>>> qqnorm() produces an error:
>>>
>>>
>>>> qqnorm(daxr)
>>>>
>>> Fehler in if (xi == xj) 0L else if (xi > xj) 1L else -1L :
>>>  Argument hat L?nge 0
>>> Calls: qqnorm ... xtfrm.default -> as.vector -> rank -> switch -> .gt
>>> Ausf?hrung angehalten
>>>
>>>
>>> However, this is not witnessed by running the script through R
>>> 2.7.2 (attached are the two output files). Incidentally, the
>>> QQ-plot is produced if one uses "qqnorm(coredata(daxr))" under
>>> R version 2.8.0. After having read both NEWS on CRAN (General
>>> and Windows specific) I still could not figure out what causes
>>> this result. The version of package zoo is the same and the
>>> results do not change if I use the zoo package built under R
>>> version 2.7.2 with R version 2.7.2 or the one that has been
>>> built under R version 2.8.0.
>>>
>>> Any hints and enlightenment are most welcome.
>>>
>>> Best,
>>> Bernhard
>>>
>>>
>>> *****************************************************************
>>> Confidentiality Note: The information contained in this message,
>>> and any attachments, may contain confidential and/or privileged
>>> material. It is intended solely for the person(s) or entity to
>>> which it is addressed. Any review, retransmission, dissemination,
>>> or taking of any action in reliance upon this information by
>>> persons or entities other than the intended recipient(s) is
>>> prohibited. If you received this in error, please contact the
>>> sender and delete the material from any computer.
>>> *****************************************************************
>>>
>>>
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
>
> --
>   O__  ---- Peter Dalgaard             ?ster Farimagsgade 5, Entr.B
>  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
>  (*) \(*) -- University of Copenhagen   Denmark      Ph:  (+45) 35327918
> ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)              FAX: (+45) 35327907
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



[Rd] R 2.8.0 qqnorm produces error with object of class zoo?
Gabor Grothendieck