Ist es mit Crossfilter möglich, Max / Min beim Gruppieren zu verfolgen?
Bei Verwendung von Crossfilter (https://github.com/square/crossfilter) gebe ich Funktionen an, die beim Hinzufügen und Entfernen von Daten zu einer Gruppe verwendet werden sollen. Es ist ziemlich trivial, einen laufenden Durchschnitt zu verfolgen (mit CoffeeScript):
<code>reduceAdd = (p, v) -> ++p.count; p.sum += v.digit; p reduceRemove = (p, v) -> --p.count; p.sum -= v.digit; p reduceInitial = -> { count: 0 sum: 0 average: -> return 0 if this.count == 0 return this.sum / this.count } </code>
Ist es möglich, das Maximum und das Minimum jeder Gruppe zu verfolgen? Ich kann es kaum fassen, alle Elemente in einem riesigen Array zu halten und eine d3.min / d3.max zu machen. Das Hinzufügen / Entfernen von Daten scheint äußerst ineffizient zu sein.
Ich habe auch nach einer Möglichkeit gesucht, Crossfilter anzuweisen, die Gruppe von Grund auf neu zu erstellen, anstatt Elemente aus einer vorhandenen Gruppe zu entfernen. Wenn ein Filter angewendet wird, wird die Gruppe zurückgesetzt und neu erstellt. Nichts offensichtliches.