SeriesGroupBy { public DataFrame aggMultiple(SeriesAggregator<? super T, ?>... aggregators) { return SeriesAggregation.aggGroupMultiple(this, aggregators); } SeriesGroupBy(Series<T> ungrouped, Map<Object, IntSeries> groupsIndex); int size(); Collection<Object> getGroups(); boolean hasGroup(Object key); IntSeries getGroupIndex(Object key); Series<T> getGroup(Object key); Series<T> toSeries(); Series<R> agg(SeriesAggregator<? super T, R> aggregator); DataFrame aggMultiple(SeriesAggregator<? super T, ?>... aggregators);  }
@Test public void testAggMultiple() { DataFrame aggregated = Series.forData("a", "b", "cd", "e", "fg") .group((String s) -> s.length()) .aggMultiple( SeriesAggregator.first(), SeriesAggregator.concat("|"), SeriesAggregator.concat("_")); new DataFrameAsserts(aggregated, "first", "concat", "concat_") .expectHeight(2) .expectRow(0, "a", "a|b|e", "a_b_e") .expectRow(1, "cd", "cd|fg", "cd_fg"); }
@Test public void testAggMultiple_Named() { DataFrame aggregated = Series.forData("a", "b", "cd", "e", "fg") .group((String s) -> s.length()) .aggMultiple( SeriesAggregator.first().named("f"), SeriesAggregator.concat("|").named("c1"), SeriesAggregator.concat("_").named("c2")); new DataFrameAsserts(aggregated, "f", "c1", "c2") .expectHeight(2) .expectRow(0, "a", "a|b|e", "a_b_e") .expectRow(1, "cd", "cd|fg", "cd_fg"); }