Пример #1
0
        public void Display(Frame f)
        {
            var columnValues = new List <ColumnStatisticsView>();

            for (int i = 0; i < f.Series.Count; i++)
            {
                List <double> doubles = GetColumnData(f, i, out int nullCount);

                if (doubles.Count == 0)
                {
                    columnValues.Add(new ColumnStatisticsView());
                    continue;
                }

                columnValues.Add(new ColumnStatisticsView()
                {
                    ColumnName          = f[i].Name,
                    DistinctValuesCount = doubles.Distinct().Count(),
                    Mean              = doubles.Mean(),
                    Sum               = doubles.Sum(),
                    Min               = doubles.Min(),
                    Max               = doubles.Max(),
                    Kurtosis          = doubles.Kurtosis(),
                    Skewness          = doubles.Skewness(),
                    Median            = doubles.Median(),
                    NullCount         = nullCount,
                    Quartile25        = doubles.Quartile25(),
                    Quartile75        = doubles.Quartile75(),
                    StandardDeviation = doubles.StandardDeviation(),
                    Variance          = doubles.Variance()
                });
            }

            SfGrid.ItemsSource = columnValues;
        }
        public void Display(Frame df)
        {
            SfGrid.Columns.Clear();

            int i = 0;

            foreach (Series s in df.Series)
            {
                SfGrid.Columns.Add(CreateSfColumn(s, i++));
            }


            SfGrid.ItemsSource = Enumerable
                                 .Range(0, df.RowCount)
                                 .Select(rn => new TableRowView(df.GetRow(rn)));

            SfGrid.Columns.RemoveAt(SfGrid.Columns.Count - 1);
        }
Пример #3
0
        private static List <double> GetColumnData(Frame f, int index, out int nullCount)
        {
            var result   = new List <double>();
            int invalids = 0;
            int nulls    = 0;

            Series s = f[index];

            if (s.DataType == typeof(double))
            {
                result    = (List <double>)s.Data;
                nullCount = 0;
                return(result);
            }

            foreach (object uv in s.Data)
            {
                if (ReferenceEquals(uv, null))
                {
                    nulls += 1;
                    continue;
                }

                try
                {
                    double v = Convert.ToDouble(uv);
                    result.Add(v);
                }
                catch (FormatException)
                {
                    invalids += 1;
                }
                catch (InvalidCastException)
                {
                    invalids += 1;
                }
            }

            nullCount = nulls;

            return(result);
        }