range( <dates>, na.rm = TRUE ) (PR#10508)
Prof Brian Ripley wrote:
I don't think that is the right fix. All methods for min/max should now support na.rm=3DTRUE (but not finite=3DTRUE), so range.default shou=
ld
just call min and max with that argument. I'd need to verify those 'should's first ....
OK, that why I didn't touch the sources....
-p
Brian On Tue, 11 Dec 2007, Peter Dalgaard wrote:
(Drats! Jitterbug is playing tricks with the PR# again. Attempting to refile so that we can kill PR#10509) Peter Dalgaard wrote:
Kurt.Hornik at wu-wien.ac.at wrote:
------- Start of forwarded message ------- Date: Tue, 13 Nov 2007 21:44:57 +0100 To: Steve Mongin <sjm at ccbr.umn.edu> Cc: cran at r-project.org Subject: Re: range( <dates>, na.rm =3D TRUE ) In-Reply-To: <200711062044.OAA14064 at minnow.ccbr.umn.edu> Reply-To: Kurt.Hornik at wu-wien.ac.at From: Kurt Hornik <Kurt.Hornik at wu-wien.ac.at> X-AntiVirus: checked by AntiVir MailGate (version: 2.1.3-2; AVE: 7.6.0.34; VDF: 7.0.0.210; host: fsme.wu-wien.ac.at) X-Virus-Scanned: ClamAV 0.90.3/4768/Tue Nov 13 18:25:08 2007 on pocken.wu-wien.ac.at X-Virus-Status: Clean
Steve Mongin writes:
Dear CRAN: I am running 'R' on Linux as follows:
version
_ platform i686-redhat-linux-gnu arch i686 os linux-gnu system i686, linux-gnu status major 2 minor 6.0 year 2007 month 10 day 03 svn rev 43063 language R version.string R version 2.6.0 (2007-10-03)
I have a question about the behavior of "range()" with missing date=
s.
With the previous version (2.4?) , the command:
range( as.Date( c( "2007-11-06", NA ) ), na.rm =3D TRUE )
yielded:
[1] "2007-11-06" "2007-11-06"
Now I get:
[1] NA NA
Is this a bug?
Yes, I see in the "What's New" page:
"The Math2 and Summary groups (round, signif, all, any, max, min,=
summ, prod, range) are now primitive."
Is the "primitive" characteristic supposed to behave as above with missing dates?
Thanks for any help that you can provide.
This is really a question for r-devel or r-bugs, I think, but not fo=
r
the CRAN maintainers. I would think it is a bug. Perhaps simply file a bug report?
Again? ;-) The bug is here:
range.default
function (..., na.rm =3D FALSE, finite =3D FALSE)
{
x <- c(..., recursive =3D TRUE)
if (is.numeric(x)) {
if (finite)
x <- x[is.finite(x)]
else if (na.rm)
x <- x[!is.na(x)]
}
c(min(x), max(x))
}
<environment: namespace:base>
Objects of class Date are not considered numeric, so we end up taking=
min and max without removing NA.
One solution could be
if (is.numeric(x) || inherits(x, "Date") ){....}
--=20 O__ ---- Peter Dalgaard =C3=98ster Farimagsgade 5, Entr.B= c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327= 918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327= 907