Sounds good. Thanks Martin!  H.

On 11-11-17 03:20 AM, Martin Maechler wrote:

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()



--
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpa...@fhcrc.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to