set functions
Peter Dalgaard BSA
p.dalgaard@biostat.ku.dk
04 Jan 2000 17:39:58 +0100
Jonathan Rougier <J.C.Rougier@durham.ac.uk> writes:
> On 4 Jan 2000, Peter Dalgaard BSA wrote:
>
> > > "equiv" <- function(x, y) all(c(match(x, y, 0)>0, match(y, x, 0)>0))
>
> > length(setdiff(x,y))==0 appears to be about twice as fast....
>
> But I don't think that would be right!
>
> length(setdiff(1:4, 1:5))==0 # is TRUE
> equiv(1:4, 1:5) # clearly FALSE
Argh. I was thinking of the symmetric set difference. So you'd need
setdiff(y,x)==0 & setdiff(x,y)==0 which is obviously only half as fast
as twice as fast....
However:
equiv<-function(x,y)
length(x<-unique(x))==length(y<-unique(y)) &&
all(sort(x)==sort(y))
--
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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._