Aggregate | R Documentation |
Node
, recursively.The Aggregate
method lets you fetch an attribute from a Node
's children, and then aggregate them
using aggFun
. For example, you can aggregate cost by summing costs of child Nodes
. This is especially useful in the
context of tree traversal, when using post-order traversal mode.
Aggregate(node, attribute, aggFun, ...)
node |
the |
attribute |
determines what is collected. The
|
aggFun |
the aggregation function to be applied to the children's |
... |
any arguments to be passed on to attribute (in case it's a function) |
As with Get
, the attribute can be a field, a method or a function. If the attribute on a child
is NULL
, Aggregate
is called recursively on its children.
Node
data(acme)
#Aggregate on a field
Aggregate(acme, "cost", sum)
#This is the same as:
HomeRolledAggregate <- function(node) {
sum(sapply(node$children, function(child) {
if (!is.null(child$cost)) child$cost
else HomeRolledAggregate(child)
}))
}
HomeRolledAggregate(acme)
#Aggregate using Get
print(acme, "cost", minCost = acme$Get(Aggregate, "cost", min))
#use Aggregate with a function:
Aggregate(acme, function(x) x$cost * x$p, sum)
#cache values along the way
acme$Do(function(x) x$cost <- Aggregate(x, "cost", sum), traversal = "post-order")
acme$IT$cost
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.