DelayedOp objects
DelayedOp-class.RdNOTE: This man page is about DelayedArray internals and is provided for developers and advanced users only.
In a DelayedArray object, the delayed operations are stored as a tree where the leaves are operands and the nodes are the operations. Each node in the tree is a DelayedOp derivative representing a particular delayed operation.
DelayedOp is a virtual class with 8 concrete subclasses. Each subclass provides a formal representation for a particular kind of delayed operation.
Details
8 types of nodes are currently supported. Each type is a DelayedOp subclass:
Node type Represented operation
------------------------------------------------------------------
DelayedOp (VIRTUAL)
------------------------------------------------------------------
* DelayedUnaryOp (VIRTUAL)
o DelayedSubset Multi-dimensional single bracket
subsetting.
o DelayedAperm Extended aperm() (can drop and/or
add ineffective dimensions).
o DelayedUnaryIsoOp (VIRTUAL) Unary op that preserves the
geometry.
- DelayedUnaryIsoOpStack Simple ops stacked together.
- DelayedUnaryIsoOpWithArgs One op with vector-like arguments
along the dimensions of the input.
- DelayedSubassign Multi-dimensional single bracket
subassignment.
- DelayedSetDimnames Set/replace the dimnames.
------------------------------------------------------------------
* DelayedNaryOp (VIRTUAL)
o DelayedNaryIsoOp N-ary op that preserves the
geometry.
o DelayedAbind abind()
------------------------------------------------------------------
All DelayedOp objects must comply with the seed contract i.e. they
must support dim(), dimnames(), and extract_array().
See ?extract_array in the S4Arrays package
for more information about the seed contract.
This makes them de facto array-like objects. However, end users will never
interact with them directly, except for the root of the tree which is the
DelayedArray object itself and the only node in the tree that they are able
to see and touch.
is_noop() can only be called on a DelayedSubset, DelayedAperm,
or DelayedSetDimnames object at the moment, and will return TRUE
if the object represents a no-op.
Note
The DelayedOp virtual class and its 8 concrete subclasses are used inside a DelayedArray object to represent delayed operations carried by the object. They're never exposed to the end user and are not intended to be manipulated directly.
See also
DelayedOp concrete subclasses: DelayedSubset, DelayedAperm, DelayedUnaryIsoOpStack, DelayedUnaryIsoOpWithArgs, DelayedSubassign, DelayedSetDimnames, DelayedNaryIsoOp, and DelayedAbind.
DelayedArray objects.
showtreeto visualize the nodes and access the leaves in the tree of delayed operations carried by a DelayedArray object.simplifyto simplify the tree of delayed operations carried by a DelayedArray object.extract_arrayin the S4Arrays package.