Re: [Rd] R 2.8.0 qqnorm produces error with object of class zoo?

From: Peter Dalgaard <P.Dalgaard_at_biostat.ku.dk>
Date: Wed, 22 Oct 2008 14:49:34 +0200

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
Received on Wed 22 Oct 2008 - 13:00:03 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 Wed 22 Oct 2008 - 18:30:22 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive