DelayedSetDimnames objects
DelayedSetDimnames-class.RdNOTE: This man page is about DelayedArray internals and is provided for developers and advanced users only.
The DelayedSetDimnames class provides a formal representation of a delayed "set dimnames" operation. It is a concrete subclass of the DelayedUnaryIsoOp virtual class, which itself is a subclass of the DelayedUnaryOp virtual class, which itself is a subclass of the DelayedOp virtual class:
DelayedOp
^
|
DelayedUnaryOp
^
|
DelayedUnaryIsoOp
^
|
DelayedSetDimnames
DelayedSetDimnames objects are used inside a DelayedArray object to represent the delayed "set dimnames" operations carried by the object. They're never exposed to the end user and are not intended to be manipulated directly.
Usage
# S4 method for class 'DelayedSetDimnames'
is_noop(x)
# S4 method for class 'DelayedSetDimnames'
summary(object, ...)
## ~ ~ ~ Seed contract ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
## DelayedSetDimnames objects inherit the default dim()
## and extract_array() methods defined for DelayedUnaryIsoOp
## derivatives, but overwite their dimnames() method.
# S4 method for class 'DelayedSetDimnames'
dimnames(x)
## ~ ~ ~ Propagation of sparsity ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
## DelayedSetDimnames objects inherit the default
## is_sparse() and extract_sparse_array() methods defined
## for DelayedUnaryIsoOp derivatives.See also
DelayedOp objects.
showtreeto visualize the nodes and access the leaves in the tree of delayed operations carried by a DelayedArray object.
Examples
## DelayedSetDimnames extends DelayedUnaryIsoOp, which extends
## DelayedUnaryOp, which extends DelayedOp:
extends("DelayedSetDimnames")
#> [1] "DelayedSetDimnames" "DelayedUnaryIsoOp" "DelayedUnaryOp"
#> [4] "DelayedOp" "Array"
## ---------------------------------------------------------------------
## BASIC EXAMPLE
## ---------------------------------------------------------------------
m0 <- matrix(1:30, ncol=5, dimnames=list(letters[1:6], NULL))
M2 <- M1 <- M0 <- DelayedArray(m0)
showtree(M0)
#> 6x5 integer: DelayedMatrix object
#> └─ 6x5 integer: [seed] matrix object
dimnames(M1) <- list(NULL, LETTERS[1:5])
showtree(M1)
#> 6x5 integer: DelayedMatrix object
#> └─ 6x5 integer: Set dimnames
#> └─ 6x5 integer: [seed] matrix object
class(M1@seed) # a DelayedSetDimnames object
#> [1] "DelayedSetDimnames"
#> attr(,"package")
#> [1] "DelayedArray"
colnames(M2) <- LETTERS[1:5]
showtree(M2)
#> 6x5 integer: DelayedMatrix object
#> └─ 6x5 integer: Set dimnames
#> └─ 6x5 integer: [seed] matrix object
class(M2@seed) # a DelayedSetDimnames object
#> [1] "DelayedSetDimnames"
#> attr(,"package")
#> [1] "DelayedArray"
## ---------------------------------------------------------------------
## PROPAGATION OF SPARSITY
## ---------------------------------------------------------------------
## DelayedSetDimnames objects always propagate sparsity.
sm0 <- sparseMatrix(i=c(1, 4), j=c(1, 3), x=c(11, 43), dims=4:3)
SM <- SM0 <- DelayedArray(sm0)
showtree(SM0)
#> 4x3 double, sparse: DelayedMatrix object
#> └─ 4x3 double, sparse: [seed] dgCMatrix object
is_sparse(SM0) # TRUE
#> [1] TRUE
dimnames(SM) <- list(letters[1:4], LETTERS[1:3])
showtree(SM)
#> 4x3 double, sparse: DelayedMatrix object
#> └─ 4x3 double, sparse: Set dimnames
#> └─ 4x3 double, sparse: [seed] dgCMatrix object
class(SM@seed) # a DelayedSetDimnames object
#> [1] "DelayedSetDimnames"
#> attr(,"package")
#> [1] "DelayedArray"
is_sparse(SM@seed) # TRUE
#> [1] TRUE
## ---------------------------------------------------------------------
## SANITY CHECKS
## ---------------------------------------------------------------------
stopifnot(class(M1@seed) == "DelayedSetDimnames")
stopifnot(class(M2@seed) == "DelayedSetDimnames")
stopifnot(class(SM@seed) == "DelayedSetDimnames")
stopifnot(is_sparse(SM@seed))