[Rd] Wierd problem comparing numeric values and list using == (PR#1073)

Peter Dalgaard BSA p.dalgaard@biostat.ku.dk
25 Aug 2001 15:57:09 +0200


gregory_r_warnes@groton.pfizer.com writes:

> Under R 1.3.0 on Solaris and Windows NT  there seems to be a bug in == when
> applied to elements of a list, particularly when one of the elements is of
> mode integer:
> 
> 	> list(1) == list(1)
> 	[1] FALSE
> 	> 1 == list(1)
> 	[1] TRUE
> 	> as.integer(1)==list(as.integer(1))
> 	[1] FALSE
> 	> as.integer(1)==list(as.double(1))
> 	[1] FALSE
> 	> list(as.integer(1))==list(as.integer(1))
> 	[1] FALSE
> 	> list(as.integer(1))==as.integer(1)
> 	[1] FALSE
> 	> list(as.double(1))==list(as.double(1))
> 	[1] FALSE
> 
> However, these cases work:
> 
> 	> as.double(1)==list(as.integer(1))
> 	[1] TRUE
> 	> list(as.integer(1))==as.double(1)
> 	[1] TRUE
> 
> Replacing the bare integer/double with a vector constructed with c() doesn't
> change the results, and comparing between vectors created with c() appears
> correct.

It is not entirely clear what we *should* be doing here. S (-PLUS 3.4)
is at least consistent:

> list(1) == list(1)
Error in list(1) == list(1): == operation on mode "list" undefined
Dumped
>  1 == list(1)
Error in 1 == list(1): == operation on mode "list" undefined
Dumped
> as.integer(1)==list(as.integer(1))
Error in as.integer(1) == list(as.integer(1)): == operation on mode "list"
        undefined
Dumped
...

so one might argue that you shouldn't do that in the first place...
(or that the bug is that we do not expressly forbid doing this.)

        -p

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)             FAX: (+45) 35327907
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._