private bool TryGetGroupSummaryMetrics(Dictionary <string, IDataView>[] metrics, out IDataView gs)
        {
            Host.AssertNonEmpty(metrics);

            if (metrics.Length == 1)
            {
                return(metrics[0].TryGetValue(RankerEvaluator.GroupSummary, out gs));
            }

            gs = null;
            var gsList = new List <IDataView>();

            for (int i = 0; i < metrics.Length; i++)
            {
                IDataView idv;
                if (!metrics[i].TryGetValue(RankerEvaluator.GroupSummary, out idv))
                {
                    return(false);
                }

                idv = EvaluateUtils.AddFoldIndex(Host, idv, i, metrics.Length);
                gsList.Add(idv);
            }
            gs = AppendRowsDataView.Create(Host, gsList[0].Schema, gsList.ToArray());
            return(true);
        }