[Rd] MARGIN in base::unique.matrix() and base::unique.array()
Kurt Hornik
Kurt@Hornik @ending from wu@@c@@t
Wed Jul 18 16:56:32 CEST 2018
>>>>> Hervé Pagès writes:
Thanks for spotting this.
With c74978 I just committed, we now get
R> unique(matrix(1:10, ncol=2), MARGIN=1:3)
Error in unique.matrix(matrix(1:10, ncol = 2), MARGIN = 1:3) :
MARGIN = 1,2,3 is invalid for dim = 5,2
Calls: unique -> unique.matrix
R> unique(matrix(1:10, ncol=2), MARGIN=3)
Error in unique.matrix(matrix(1:10, ncol = 2), MARGIN = 3) :
MARGIN = 3 is invalid for dim = 5,2
Calls: unique -> unique.matrix
Best
-k
> Hi,
> The man page for base::unique.matrix() and base::unique.array() says
> that MARGIN is expected to be a single integer. OTOH the code in charge
> of checking the user supplied MARGIN is:
> if (length(MARGIN) > ndim || any(MARGIN > ndim))
> stop(gettextf("MARGIN = %d is invalid for dim = %d",
> MARGIN, dx), domain = NA)
> which doesn't really make sense.
> As a consequence the user gets an obscure error message when specifying
> a MARGIN that satisfies the above check but is in fact invalid:
>> unique(matrix(1:10, ncol=2), MARGIN=1:2)
> Error in args[[MARGIN]] <- !duplicated.default(temp, fromLast =
> fromLast, :
> object of type 'symbol' is not subsettable
> Also the code used by the above check to generate the error message
> is broken:
>> unique(matrix(1:10, ncol=2), MARGIN=1:3)
> Error in sprintf(gettext(fmt, domain = domain), ...) :
> arguments cannot be recycled to the same length
>> unique(matrix(1:10, ncol=2), MARGIN=3)
> Error in unique.matrix(matrix(1:10, ncol = 2), MARGIN = 3) :
> c("MARGIN = 3 is invalid for dim = 5", "MARGIN = 3 is invalid for
> dim = 2")
> Thanks,
> H.
> --
> 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: hpages using fredhutch.org
> Phone: (206) 667-5791
> Fax: (206) 667-1319
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list