Frame groupByTEColumnAndAggregate(Frame data, int teColumnIndex) { int numeratorColumnIndex = data.find("numerator"); int denominatorColumnIndex = data.find("denominator"); AstGroup.AGG[] aggs = new AstGroup.AGG[2]; AstGroup.NAHandling na = AstGroup.NAHandling.ALL; aggs[0] = new AstGroup.AGG(AstGroup.FCN.sum, numeratorColumnIndex, na, (int) data.vec(numeratorColumnIndex).max() + 1); aggs[1] = new AstGroup.AGG(AstGroup.FCN.sum, denominatorColumnIndex, na, (int) data.vec(denominatorColumnIndex).max() + 1); Frame result = new AstGroup().performGroupingWithAggregations(data, new int[]{teColumnIndex}, aggs, -1).getFrame(); return register(result); }
Frame groupThenAggregateForNumeratorAndDenominator(Frame fr, String teColumnName, String foldColumnName, int targetIndex) { int teColumnIndex = fr.find(teColumnName); int[] groupByColumns = null; if (foldColumnName == null) { groupByColumns = new int[]{teColumnIndex}; } else { int foldColumnIndex = fr.find(foldColumnName); groupByColumns = new int[]{teColumnIndex, foldColumnIndex}; } AstGroup.AGG[] aggs = new AstGroup.AGG[2]; AstGroup.NAHandling na = AstGroup.NAHandling.ALL; aggs[0] = new AstGroup.AGG(AstGroup.FCN.sum, targetIndex, na, (int) fr.vec(targetIndex).max() + 1); aggs[1] = new AstGroup.AGG(AstGroup.FCN.nrow, targetIndex, na, (int) fr.vec(targetIndex).max() + 1); Frame result = new AstGroup().performGroupingWithAggregations(fr, groupByColumns, aggs, -1).getFrame(); return register(result); }
Frame groupByTEColumnAndAggregate(Frame data, int teColumnIndex) { int numeratorColumnIndex = data.find("numerator"); int denominatorColumnIndex = data.find("denominator"); AstGroup.AGG[] aggs = new AstGroup.AGG[2]; AstGroup.NAHandling na = AstGroup.NAHandling.ALL; aggs[0] = new AstGroup.AGG(AstGroup.FCN.sum, numeratorColumnIndex, na, (int) data.vec(numeratorColumnIndex).max() + 1); aggs[1] = new AstGroup.AGG(AstGroup.FCN.sum, denominatorColumnIndex, na, (int) data.vec(denominatorColumnIndex).max() + 1); Frame result = new AstGroup().performGroupingWithAggregations(data, new int[]{teColumnIndex}, aggs, -1).getFrame(); return register(result); }
Frame groupThenAggregateForNumeratorAndDenominator(Frame fr, String teColumnName, String foldColumnName, int targetIndex) { int teColumnIndex = fr.find(teColumnName); int[] groupByColumns = null; if (foldColumnName == null) { groupByColumns = new int[]{teColumnIndex}; } else { int foldColumnIndex = fr.find(foldColumnName); groupByColumns = new int[]{teColumnIndex, foldColumnIndex}; } AstGroup.AGG[] aggs = new AstGroup.AGG[2]; AstGroup.NAHandling na = AstGroup.NAHandling.ALL; aggs[0] = new AstGroup.AGG(AstGroup.FCN.sum, targetIndex, na, (int) fr.vec(targetIndex).max() + 1); aggs[1] = new AstGroup.AGG(AstGroup.FCN.nrow, targetIndex, na, (int) fr.vec(targetIndex).max() + 1); Frame result = new AstGroup().performGroupingWithAggregations(fr, groupByColumns, aggs, -1).getFrame(); return register(result); }