DelayedAbind-class {DelayedArray} | R Documentation |
NOTE: This man page is about DelayedArray internals and is provided for developers and advanced users only.
The DelayedAbind class provides a formal representation of a
delayed abind()
operation. It is a concrete subclass of
the DelayedNaryOp virtual class, which itself is a subclass of
the DelayedOp virtual class:
DelayedOp ^ | DelayedNaryOp ^ | DelayedAbind
DelayedAbind objects are used inside a DelayedArray object to
represent the delayed abind()
operations carried by the object.
They're never exposed to the end user and are not intended to be manipulated
directly.
## S4 method for signature 'DelayedAbind' is_noop(x) ## S4 method for signature 'DelayedAbind' summary(object, ...) ## ~ ~ ~ Seed contract ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ## S4 method for signature 'DelayedAbind' dim(x) ## S4 method for signature 'DelayedAbind' dimnames(x) ## S4 method for signature 'DelayedAbind' extract_array(x, index) ## ~ ~ ~ Propagation of sparsity ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ## S4 method for signature 'DelayedAbind' is_sparse(x) ## S4 method for signature 'DelayedAbind' extract_sparse_array(x, index)
x, object |
A DelayedAbind object. |
index |
See |
... |
Not used. |
DelayedOp objects.
showtree
to visualize the nodes and access the
leaves in the tree of delayed operations carried by a
DelayedArray object.
## DelayedAbind extends DelayedNaryOp which extends DelayedOp: extends("DelayedAbind") ## --------------------------------------------------------------------- ## BASIC EXAMPLE ## --------------------------------------------------------------------- m1 <- matrix(101:128, ncol=4) m2 <- matrix(runif(16), ncol=4) M1 <- DelayedArray(m1) M2 <- DelayedArray(m2) showtree(M1) showtree(M2) M3 <- rbind(M1, M2) showtree(M3) class(M3@seed) # a DelayedAbind object M4 <- cbind(t(M1), M2) showtree(M4) class(M4@seed) # a DelayedAbind object ## --------------------------------------------------------------------- ## PROPAGATION OF SPARSITY ## --------------------------------------------------------------------- ## DelayedAbind objects always propagate sparsity (granted that all the ## input arrays are sparse). sm1 <- sparseMatrix(i=c(1, 1, 7, 7), j=c(1, 4, 1, 4), x=c(11, 14, 71, 74), dims=c(7, 4)) SM1 <- DelayedArray(sm1) sm2 <- sparseMatrix(i=c(1, 1, 4, 4), j=c(1, 4, 1, 4), x=c(11, 14, 41, 44), dims=c(4, 4)) SM2 <- DelayedArray(sm2) showtree(SM1) showtree(SM2) is_sparse(SM1) # TRUE is_sparse(SM2) # TRUE SM3 <- rbind(SM1, SM2) showtree(SM3) class(SM3@seed) # a DelayedAbind object is_sparse(SM3@seed) # TRUE SM4 <- cbind(SM2, t(SM1)) showtree(SM4) class(SM4@seed) # a DelayedAbind object is_sparse(SM4@seed) # TRUE M5 <- rbind(SM2, M1) # 2nd input array is not sparse! showtree(M5) class(M5@seed) # a DelayedAbind object is_sparse(M5@seed) # FALSE ## --------------------------------------------------------------------- ## SANITY CHECKS ## --------------------------------------------------------------------- stopifnot(class(M3@seed) == "DelayedAbind") stopifnot(class(M4@seed) == "DelayedAbind") stopifnot(class(SM3@seed) == "DelayedAbind") stopifnot(is_sparse(SM3@seed)) stopifnot(class(SM4@seed) == "DelayedAbind") stopifnot(is_sparse(SM4@seed)) stopifnot(class(M5@seed) == "DelayedAbind") stopifnot(!is_sparse(M5@seed))