Esempio n. 1
0
        public List <DateAndNumeralValues> GetNumeralLinePlot(int id)
        {
            DateAndNumeral dn = _context.DateAndNumerals.SingleOrDefault(x => x.Id == id);

            List <string> dates = dn.DateData.Split(',').ToList();
            List <string> nums  = dn.NumeralData.Split(',').ToList();

            List <DateAndNumeralValues> dns = _parsingService.ProcessDateNumerals(dates, nums).OrderBy(x => x.Date).ToList();

            return(dns);
        }
        public StatSummaryVM GetSummaryVM(Dictionary <string, List <string> > dictFile, SelectTypeVM vm)
        {
            List <string>          checkedColumns      = new List <string>();
            List <ChiStats>        chiStatsList        = new List <ChiStats>();
            List <AnovaStats>      anovaStatsList      = new List <AnovaStats>();
            List <PearsonCorr>     pearsonCorrelations = new List <PearsonCorr>();
            List <DateAndCategory> dateAndCategories   = new List <DateAndCategory>();
            List <DateAndNumeral>  dateAndNumerals     = new List <DateAndNumeral>();

            StatSummaryVM statsSummary = new StatSummaryVM();

            foreach (KeyValuePair <string, List <string> > entry in dictFile)
            {
                foreach (KeyValuePair <string, List <string> > entryCompare in dictFile)
                {
                    var checkedKey = CompareAndConcat(entry.Key, entryCompare.Key);

                    if (entry.Key == entryCompare.Key ||
                        checkedColumns.Contains(checkedKey) ||
                        (entry.Value.Count != entryCompare.Value.Count) ||
                        (vm.ColumnTypes[entry.Key] == EXCLUDE || vm.ColumnTypes[entryCompare.Key] == EXCLUDE))
                    {
                        continue;
                    }


                    if ((vm.ColumnTypes[entry.Key] == DATE_TIME || vm.ColumnTypes[entryCompare.Key] == DATE_TIME)
                        &&
                        (vm.ColumnTypes[entry.Key] == CATEGORICAL || vm.ColumnTypes[entryCompare.Key] == CATEGORICAL))
                    {
                        DateAndCategory dateCat = new DateAndCategory();

                        if (vm.ColumnTypes[entry.Key] == DATE_TIME)
                        {
                            dateCat.GetLinePlotData(entry.Value, entryCompare.Value);
                        }
                        else
                        {
                            dateCat.GetLinePlotData(entryCompare.Value, entry.Value);
                        }
                        dateCat.Variable1 = entry.Key;
                        dateCat.Variable2 = entryCompare.Key;

                        dateAndCategories.Add(dateCat);
                    }

                    if ((vm.ColumnTypes[entry.Key] == DATE_TIME || vm.ColumnTypes[entryCompare.Key] == DATE_TIME)
                        &&
                        (vm.ColumnTypes[entry.Key] == NUMERAL || vm.ColumnTypes[entryCompare.Key] == NUMERAL))
                    {
                        DateAndNumeral dateNum = new DateAndNumeral();

                        if (vm.ColumnTypes[entry.Key] == DATE_TIME)
                        {
                            dateNum.MakeDataBlob(entry.Value, entryCompare.Value);
                            dateNum.DateName    = entry.Key;
                            dateNum.NumeralName = entryCompare.Key;
                        }
                        else
                        {
                            dateNum.MakeDataBlob(entryCompare.Value, entry.Value);
                            dateNum.DateName    = entryCompare.Key;
                            dateNum.NumeralName = entry.Key;
                        }


                        dateAndNumerals.Add(dateNum);
                    }


                    if (vm.ColumnTypes[entry.Key] == CATEGORICAL && vm.ColumnTypes[entryCompare.Key] == CATEGORICAL)
                    {
                        ChiStats chiStats = new ChiStats();

                        chiStats.GetChiStat(entry.Value, entryCompare.Value);

                        chiStats.Variable1 = entryCompare.Key.Replace("\"", "");
                        chiStats.Variable2 = entry.Key.Replace("\"", "");

                        chiStatsList.Add(chiStats);
                    }

                    if ((vm.ColumnTypes[entry.Key] == CATEGORICAL || vm.ColumnTypes[entryCompare.Key] == CATEGORICAL)
                        &&
                        (vm.ColumnTypes[entry.Key] == NUMERAL || vm.ColumnTypes[entryCompare.Key] == NUMERAL))
                    {
                        AnovaStats anovaStats = new AnovaStats();

                        if (vm.ColumnTypes[entry.Key] == NUMERAL)
                        {
                            anovaStats.GetAnovaStats(entryCompare.Value, entry.Value);
                            anovaStats.CategoricalVariable = entryCompare.Key;
                            anovaStats.NumericalVariable   = entry.Key;
                            anovaStatsList.Add(anovaStats);
                        }
                        else
                        {
                            anovaStats.GetAnovaStats(entry.Value, entryCompare.Value);
                            anovaStats.CategoricalVariable = entry.Key;
                            anovaStats.NumericalVariable   = entryCompare.Key;
                            anovaStatsList.Add(anovaStats);
                        }

                        _context.AnovaStats.Add(anovaStats);
                        _context.SaveChanges();
                    }

                    if (vm.ColumnTypes[entry.Key] == NUMERAL && vm.ColumnTypes[entryCompare.Key] == NUMERAL)
                    {
                        PearsonCorr pearsonCorr = new PearsonCorr();
                        pearsonCorr.Variable1 = entry.Key;
                        pearsonCorr.Variable2 = entryCompare.Key;
                        pearsonCorr.ComputeCoeff(entry.Value, entryCompare.Value);

                        pearsonCorrelations.Add(pearsonCorr);

                        _context.SaveChanges();
                    }

                    checkedColumns.Add(checkedKey);
                }
            }
            statsSummary.Name        = vm.Name != null ? vm.Name : "Untitled";
            statsSummary.Description = vm.Description != null ? vm.Description : "no description available";

            statsSummary.AnovaStats      = anovaStatsList;
            statsSummary.ChiStats        = chiStatsList;
            statsSummary.PearsonCorrs    = pearsonCorrelations;
            statsSummary.DateAndCatories = dateAndCategories;
            statsSummary.DateAndNumerals = dateAndNumerals;
            statsSummary.Path            = vm.Path;
            statsSummary.FileName        = vm.FileName;

            return(statsSummary);
        }