[R] Basic question on function "identical"
Martin Maechler
maechler at stat.math.ethz.ch
Sat Dec 13 13:01:19 CET 2003
>>>>> "TL" == Thomas Lumley <tlumley at u.washington.edu>
>>>>> on Fri, 12 Dec 2003 14:54:51 -0800 (PST) writes:
TL> On Fri, 12 Dec 2003, John Welsh wrote:
>>
>>
>> > for(i in c(1:5)) + { + print(identical(i,1)) + }
>>
>> [1] FALSE [1] FALSE [1] FALSE [1] FALSE [1] FALSE
>>
>> Why don't I get:
>>
>> [1] TRUE [1] FALSE [1] FALSE [1] FALSE [1] FALSE
>>
TL> Because the first element of 1:5 is an integer and 1 is
TL> a real number. all.equal() will be TRUE, and == will
TL> probably be TRUE
definitely will (integers do have exact floating point representations)
In general, use
== for testing equality of integer numbers (of type "integer" or not)
all.equal for testing (near)equality non-integer numbers, and
many other more structured objects.
identical only if you understand more about the S language ;-)
Martin Maechler
More information about the R-help
mailing list