From P.Dalgaard at biostat.ku.dk  Wed Oct 22 14:49:34 2008
From: P.Dalgaard at biostat.ku.dk (Peter Dalgaard)
Date: Wed, 22 Oct 2008 14:49:34 +0200
Subject: [Rd] R 2.8.0 qqnorm produces error with object of class zoo?
In-Reply-To: <B89F0CE41D45644A97CCC93DF548C1C314C4ECFB@GBHENXMB02.corp.amvescap.net>
References: <B89F0CE41D45644A97CCC93DF548C1C314C4EC88@GBHENXMB02.corp.amvescap.net>
	<B89F0CE41D45644A97CCC93DF548C1C314C4ECFB@GBHENXMB02.corp.amvescap.net>
Message-ID: <48FF215E.80807@biostat.ku.dk>

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



[Rd] R 2.8.0 qqnorm produces error with object of class zoo?
Peter Dalgaard