(Ted Harding) wrote: > Further to the above: The help > > ?":" > > says: > > Value: > For numeric arguments [as opposed to factors], > a numeric vector. This will be of type 'integer' > if 'from' and 'to' are both integers and > representable in the integer type, otherwise of > type 'numeric'. > > By "if 'from' and 'to' are both integers" I understand > it to mean "if the values of 'from' and 'to' are > integers (in the mathematical realm)", i.e. this > does not refer to the R type. > In the realm of floating point arithmetic to be precise. Fractional part zero is one way of putting it. "Representable in integer type" refers to the fact that double precision has 53 bits for the mantissa and integers have 32, so some floating point integers won't fit. The point is of course that 1.3:9.3 is _not_ an integer vector.
> Thus: > > a<-1; b<-2 > str(a) > # num 1 > str(b) > # num 2 > str((a:b)) > # int [1:2] 1 2 > > so a and b were numeric when created, but since their > values are integers (etc.) (a:b) has integer type. > > Presumably this is for computational efficiency. > Integer arithmetic on a computer is faster than > floating-point arithmetic; and if the computation > can be done in the CPU registers ("register arithmetic") > then it is faster still (as I presume is the case here). > > AFAIR, space is/was more of an issue. If you do something like for i in 1:1e7 some.silly.simulation() then you have 40 MB sitting there doing nothing, and 80 MB if it had been floating point. Also AFAIR, the reason 1 is not integer is that then every operation like x-1 would involve a coercion to double. > Mind you. I'm guessing here. I have had nothing to do > with the implementation of arithmetic in R, so cannot > answer authoritatively for the motivations of those > who did! > -- 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 ~~~~~~~~~~ - ([EMAIL PROTECTED]) FAX: (+45) 35327907 ______________________________________________ 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.