> Hi, > In man page for duplicated: > Value:
> ‘duplicated()’: For a vector input, a logical vector of the same > length as ‘x’. For a data frame, a logical vector with one > element for each row. For a matrix or array, a logical array with > the same dimensions and dimnames. > When 'x' is a matrix or array, the returned value is NOT a logical > array: > > m <- matrix(c(3,2,7,6,2,7), nrow=3) > > m > [,1] [,2] > [1,] 3 6 > [2,] 2 2 > [3,] 7 7 > > duplicated(m) > [1] FALSE FALSE FALSE > Only if MARGIN=0 it seems: > > duplicated(m, MARGIN=0) > [,1] [,2] > [1,] FALSE FALSE > [2,] FALSE TRUE > [3,] FALSE TRUE Indeed. Thank you for pointing this out. I'll definitely fix that part of the help file. > Also, any reason why this doesn't work? > > anyDuplicated(m, MARGIN=0) > Error in dim(newX) <- c(prod(d.call), d2) : > dims [product 1] do not match the length of object [6] well, because the R core colleague enhanced duplicated.array() to work with MARGIN 0 (and similar cases) did not update the parallel code in anyDuplicated.array() correspondingly. > May be it could be equivalent to: > > anyDuplicated(as.vector(m)) > [1] 5 Yes, that's what will happen after I've committed my fixes. Thank you very much, Hervé! Martin [...] > -- > Hervé Pagès [...] (*) having authored anyDuplicated() ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel