[R] Bug in "is" ?
ctu at bigred.unl.edu
ctu at bigred.unl.edu
Wed Sep 24 18:08:37 CEST 2008
Thank you for all of you. Intuitively, 7 is an integer for people who
live in this planet. It is just very difficult for me to believe that
R does not think 7 is an integer but 7L is.
> is.integer(7) # R 2.7.2
[1] FALSE
Thus, based on Martin's comments, I try it again on the S-PLUS 8.0 and
it shows
> is.integer(7) # S-PLUS 8.0
[1] T
Hopefully, someday and someone will fix it therefore, R users don't
need to use as.integer(7) to tell R that 7 is an integer.
Thanks again
Chunhao
Quoting Martin Maechler <maechler at stat.math.ethz.ch>:
>>>>>> "KJ" == Keith Jewell <k.jewell at campden.co.uk>
>>>>>> on Wed, 24 Sep 2008 09:46:08 +0100 writes:
>
> KJ> "7" is an integer, but it's also a real.
> KJ> In R '?is' and '?is.integer' are clear that you're testing
> the class(es) of
> KJ> objects, not their values.
> KJ> I can't comment on the relationship with "S Programming"
>
> I can:
>
> In S, and S-plus upto version 3.4,
> numeric constants such as '7' where "double" as they are in R.
>
> Then in S-plus 5.1, they became "integer",
> and there were tools so users could change all(!!) their S
> scripts to use '7.' instead of '7' in all places where numeric
> constants were seen, in order to keep behavior back compatible.
>
> R never made such a step (backwards ;-), and never will,
> notably since in R we had introduced the explicit long (= long
> integer) constants, using the 'L' suffix,
> i.e., 7L is "integer"
> 7 is "double"
>
> Note however that for both, is.numeric(.) is fulfilled and
> class(.) and mode(.) return "numeric".
> Only typeof(.), storage.mode(.) or str(.)
> (or functions building on these) tell you the difference.
>
> Martin Maechler, ETH Zurich and R core team
>
> [And, yes, if you think further and are wondering:
> If we'd design things from scratch, we would only have S4
> classes and "double" would be a proper class and
> "numeric" would be the class union of {"integer", "double"}
> ]
>
>
> KJ> <ctu at bigred.unl.edu> wrote in message
> KJ> news:20080924000503.1fsyrqf6zokk40kg at wm-imp-1.unl.edu...
> >> This is really bothering me! In the Dr. Venables and Dr.
> Ripley's book "S
> >> Programming" Page 105
> >> shows that
> >>> c(is(10,"integer"),is(10.5,"integer"))
> >> [1] T F
> >>
> >> But I try this in R 2.7.2 it shows
> >>> c(is(10,"integer"),is(10.5,"integer"))
> >> [1] FALSE FALSE
> >> Does anyone know what is going on here?
> >>
> >> Appreciate,
> >> Chunhao
> >>
> >> Quoting Yihui Xie <xieyihui at gmail.com>:
> >>
> >>> Yes, everyone will agree "7" is an integer, but I don't think
> >>> computers will agree too :-) R thinks it's a double-precision number,
> >>> except when you explicitly specify it as an integer (say,
> >>> as.integer()).
> >>>
> >>>> class(7)
> >>> [1] "numeric"
> >>>
> >>>> is.double(7)
> >>> [1] TRUE
> >>>
> >>> Regards,
> >>> Yihui
> >>> --
> >>> Yihui Xie <xieyihui at gmail.com>
> >>> Phone: +86-(0)10-82509086 Fax: +86-(0)10-82509086
> >>> Mobile: +86-15810805877
> >>> Homepage: http://www.yihui.name
> >>> School of Statistics, Room 1037, Mingde Main Building,
> >>> Renmin University of China, Beijing, 100872, China
> >>>
> >>>
> >>>
> >>> On Wed, Sep 24, 2008 at 12:40 PM, <ctu at bigred.unl.edu> wrote:
> >>>> Hi R users
> >>>> Is there anything wrong in "is" function? (R 2.7.2)
> >>>> I believe that everyone will agree that "7" is an integer,
> right? but
> >>>> why R
> >>>> shows 7 is not an integer
> >>>>
> >>>>> is.integer(7)
> >>>>
> >>>> [1] FALSE
> >>>>>
> >>>>> is(7,"integer")
> >>>>
> >>>> [1] FALSE
> >>>>>
> >>>>> is(as.integer(7), "integer")
> >>>>
> >>>> [1] TRUE
> >>>>
> >>>> Thank you very much in advance
> >>>> Chunhao
>
> KJ> ______________________________________________
> KJ> R-help at r-project.org mailing list
> KJ> https://stat.ethz.ch/mailman/listinfo/r-help
> KJ> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> KJ> and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> 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.
>
More information about the R-help
mailing list