Reducer-class: Consumer class to combine successive records

Description Usage Arguments Methods Internal Class Fields and Methods Author(s) See Also Examples

Description

A Consumer-class to reduce N successive records into a single yield.

Usage

1
Reducer(FUN, init, ..., yieldNth = NA_integer_)

Arguments

FUN

A function of two arguments, where the first argument is the result of the previous reduction (or init, if specified, for the first record) and the second argument is the current record.

init

An optional initial value to initiate the reduction. When present, init is used to initial each yield.

...

Additional arguments, passed to the $new method of the underlying reference class. Currently unused.

yieldNth

A positive integer indicating how many upstream yields are combined before the Reducer yields. A value of NA_integer_ indicates reduction of all records in the input stream.

Methods

See Consumer Methods.

Internal Class Fields and Methods

Internal fields of this class are are described with, e.g., getRefClass("Reducer")$fields.

Internal methods of this class are described with getRefClass("Reducer")$methods() and getRefClass("Reducer")$help().

Author(s)

Martin Morgan mtmorgan@fhcrc.org

See Also

Stream

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
s <- Stream(Seq(to=10), Reducer("+"))
yield(s)     ## sum(1:10), i.e., Reduce over the entire stream
s <- Stream(Seq(to=10), Reducer("+", yieldNth=5))
yield(s)     ## sum(1:5)
yield(s)     ## sum(6:10)
s <- Stream(Seq(to=10), Reducer("+", init=10, yieldNth=5))
sapply(s, c) ## 10 + c(sum(1:5), sum(6:10))
if (.Platform$OS.type != "windows") {
    s <- Stream(Seq(to=10),
                Team(function(i) { Sys.sleep(1); i },
                     param=MulticoreParam(10L)),
                Reducer("+"))
    system.time(y <- yield(s))
    y
}

Streamer documentation built on Nov. 8, 2020, 5:53 p.m.