context("dimnames")
dn = list(c('a','b'),c('x','y'))
a = setNames(1:2, dn[[1]])
A = matrix(1:4, nrow=2, ncol=2, dimnames=dn)
DF = structure(list(y=3:4, z=c(6,5), x=1:2, A=c("b", "a")),
.Names=c("y","z","x","A"), row.names=1:2, class="data.frame")
ll = list(a=a, A=A, DF=DF)
test_that("vector and dropping rules", {
expect_equal(dimnames(a), dimnames(a, drop=FALSE))
expect_equal(dimnames(a), dn[1])
expect_equal(dimnames(a, drop=TRUE), dn[[1]])
expect_equal(dimnames(a, along=1), dn[[1]])
expect_equal(dimnames(a, along=1, drop=FALSE), dn[1])
})
test_that("ignore along for vector, not array", {
expect_equal(dimnames(a, along=2), dn[[1]])
expect_error(dimnames(as.array(a), along=2))
})
test_that("matrix", {
expect_equal(dimnames(A), dn)
expect_equal(dimnames(A, along=2), dn[[2]])
expect_error(dimnames(A, along=3))
})
test_that("data.frame", {
expect_equal(dimnames(DF, along=1), as.character(1:2))
})
test_that("list", {
dnl = dimnames(ll)
expect_equal(dnl$a, dn[1])
expect_equal(dnl$A, dn)
dnl1 = dimnames(ll, along=1)
expect_equal(dnl1$a, dnl1$A, dn[[1]])
})
test_that("zero-length", {
expect_equal(dimnames(c()), list(NULL)) #TODO: this should give integer()
expect_equal(dimnames(c(), null_as_integer=TRUE), list(integer()))
expect_null(dimnames(c(), drop=TRUE))
expect_equal(dimnames(c(), null_as_integer=TRUE, drop=TRUE), integer())
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.