[R] Is k equivalent to k:k ?

Martin Maechler maechler at stat.math.ethz.ch
Thu Dec 9 08:56:00 CET 2004

>>>>> "Marcus" == Marcus Davy <MDavy at hortresearch.co.nz>
>>>>>     on Thu, 09 Dec 2004 11:38:29 +1300 writes:

    Marcus> Bringing up an old topic on a small technicality.

    Marcus> In the help documentation on seq()

     >> Value:

     >>   The result is of 'mode' '"integer"' if 'from' is (numerically
     >>   equal to an) integer and 'by' is not specified.

    Marcus> The arguement in seq specifying length also creates
    Marcus> "double" which is not obvious in the wording, as
    Marcus> "by" is not specified but the object is double.

    >> typeof(seq(from=1, length=1))
    Marcus> [1] "double"

yes, thank you, Marcus!

Actually the situation is a bit more complicated and I'm
currently looking at the (not yet committed) version

  The result is of \code{mode} \code{"integer"} if \code{from} is
  (numerically equal to an) integer and, e.g., only \code{to} is specified.
  % MM: to specify all the conditions doesn't seem worth, nor should the
  % code be changed just for docu.purposes; e.g. str(seq(from=1:1, to=8, by=3:3))


    >>>> Martin Maechler <maechler at stat.math.ethz.ch> 3/08/2004 3:15:45 AM >>>
>>>>> "Georgi" == Georgi Boshnakov <georgi.boshnakov at umist.ac.uk>
>>>>>     on Mon, 2 Aug 2004 15:46:37 +0100 writes:

    Georgi> Hi, I wonder if the following (apparent)
    Georgi> inconsistency is a bug or feature.  

    Marcus> a feature "of course".

    Georgi> Since scalars are simply vectors of length one I
    Georgi> would think that a and a:a produce the same result. 

    Marcus> Why would you?  
    Marcus> Have you read the documentation for ":" carefully?  

    Marcus> {Part this topic, namely that a numeric constant such as "4"
    Marcus> is a "double" in R (but integer in S-plus since S+5.0)
    Marcus> should probably finally end up in the R FAQ ...
    Marcus> }

    Marcus> Regards, Martin Maechler

    Georgi> For example,

    >>> identical(4.01,4.01:4.01)
    Georgi> [1] TRUE

    Georgi> However,

    Georgi> identical(4,4:4)
    Georgi> [1] FALSE

    Georgi> and

    >>> identical(4.0,4.0:4.0)
    Georgi> [1] FALSE

    Georgi> A closer look reveals that the colon operator produces objects of different class, e.g.

    Marcus> a closer look wouldn't have been necessary had you read and
    Marcus> understood the documentation.

    >>> class(4)
    Georgi> [1] "numeric"
    >>> class(4.0)
    Georgi> [1] "numeric"

    Georgi> but

    >>> class(4:4)
    Georgi> [1] "integer"
    >>> class(4.0:4.0)
    Georgi> [1] "integer"

    Georgi> Georgi Boshnakov
    Georgi> ------------------------------------------------------------------------------
    Georgi> Dr Georgi Boshnakov                                tel.: +44  (0)161 200 3684
    Georgi> Mathematics Department                           email: georgi.boshnakov at umist.ac.uk 
    Georgi> UMIST
    Georgi> P O Box 88    
    Georgi> Manchester M60 1QD
    Georgi> UK

    Georgi> [[alternative HTML version deleted]]

    Marcus> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    Marcus> do read the posting guide why you should reconfigure
    Marcus> your e-mail software

    Marcus> ______________________________________________
    Marcus> R-help at stat.math.ethz.ch mailing list
    Marcus> https://www.stat.math.ethz.ch/mailman/listinfo/r-help 
    Marcus> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html 

    Marcus> ______________________________________________________

    Marcus> The contents of this e-mail are privileged and/or confidential to the
    Marcus> named recipient and are not to be used by any other person and/or
    Marcus> organisation. If you have received this e-mail in error, please notify 
    Marcus> the sender and delete all material pertaining to this e-mail.
    Marcus> ______________________________________________________

More information about the R-help mailing list