[Rd] array() ignores illegal non-list dimnames
Martin Maechler
maechler at stat.math.ethz.ch
Sat Dec 19 12:24:56 CET 2015
>>>>> William Dunlap via R-devel <r-devel at r-project.org>
>>>>> on Thu, 17 Dec 2015 14:40:18 -0800 writes:
> Is there a reason that array() silently ignores dimnames
> that are not a list but matrix() gives an error?
>> str(matrix(11:14, 2, 2, dimnames=c("Rows","Cols")))
> Error in matrix(11:14, 2, 2, dimnames = c("Rows", "Cols")) :
> 'dimnames' must be a list
>> str(array(11:14, dim=c(2, 2), dimnames=c("Rows","Cols")))
> int [1:2, 1:2] 11 12 13 14
of course there must be a historical reason why this lapsus
happens, ;-)
but it is definitely not as intended, and I'll commit a fix for
R-devel and R-patched "immediately".
> I noticed this in lhs:::geneticLHS, which has the line
> J <- array(NA, dim = c(n, k, pop), dimnames = c("points",
> "variables", "hypercubes"))
> where the non-list dimnames has no effect, and no warning or error.
so we will see some CRAN (and may off-CRAN) packages
producing errors after the change,
but indeed, these errors will be catching programming errors !
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com
Thanks a lot, Bill!
Martin
More information about the R-devel
mailing list