# [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

\value{
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

>>>> 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> ______________________________________________
Marcus> R-help at stat.math.ethz.ch mailing list
Marcus> https://www.stat.math.ethz.ch/mailman/listinfo/r-help

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> ______________________________________________________

```