>>>>> "KJ" == Keith Jewell <[EMAIL PROTECTED]> >>>>> 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> <[EMAIL PROTECTED]> wrote in message KJ> news:[EMAIL PROTECTED] >> 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 <[EMAIL PROTECTED]>: >> >>> 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 <[EMAIL PROTECTED]> >>> 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, <[EMAIL PROTECTED]> 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@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@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.