dn
NULL-like ?is.null.DN.Rd
Are the dimnames
dn
NULL
-like?
is.null.DN(dn)
is less strict than is.null(dn)
,
because it is also true (TRUE
) when the dimnames
dn
are “like” NULL
, or list(NULL,NULL)
, as
they can easily be for the traditional R matrices
(matrix
) which have no formal class
definition, and hence much freedom in how their dimnames
look like.
is.null.DN(dn)
This function is really to be used on “traditional” matrices
rather than those inheriting from Matrix
, as
the latter will always have dimnames list(NULL,NULL)
exactly,
in such a case.
m1 <- m2 <- m3 <- m4 <- m <-
matrix(round(100 * rnorm(6)), 2, 3)
dimnames(m1) <- list(NULL, NULL)
dimnames(m2) <- list(NULL, character())
dimnames(m3) <- rev(dimnames(m2))
dimnames(m4) <- rep(list(character()),2)
m4 # prints absolutely identically to m
#> [,1] [,2] [,3]
#> [1,] 28 -64 -60
#> [2,] 30 -131 -8
c.o <- capture.output
cm <- c.o(m)
stopifnot(exprs = {
m == m1; m == m2; m == m3; m == m4
identical(cm, c.o(m1)); identical(cm, c.o(m2))
identical(cm, c.o(m3)); identical(cm, c.o(m4))
})
hasNoDimnames <- function(.) is.null.DN(dimnames(.))
stopifnot(exprs = {
hasNoDimnames(m)
hasNoDimnames(m1); hasNoDimnames(m2)
hasNoDimnames(m3); hasNoDimnames(m4)
hasNoDimnames(Matrix(m) -> M)
hasNoDimnames(as(M, "sparseMatrix"))
})