Esempio n. 1
0
        void PreprocessingData_Changed(object sender, DataPreprocessingChangedEventArgs e)
        {
            switch (e.Type)
            {
            case DataPreprocessingChangedEventType.DeleteColumn:
            case DataPreprocessingChangedEventType.ChangeColumn:
                MissingValueIndicies.Remove(e.Column);
                ValuesWithoutNaN.Remove(e.Column);
                break;

            case DataPreprocessingChangedEventType.AddColumn:
                //cache does not need to be updated, will be calculated the first time it is requested
                break;

            case DataPreprocessingChangedEventType.DeleteRow:
            case DataPreprocessingChangedEventType.AddRow:
            case DataPreprocessingChangedEventType.ChangeItem:
            case DataPreprocessingChangedEventType.Any:
            case DataPreprocessingChangedEventType.Transformation:
            default:
                MissingValueIndicies = new Dictionary <int, IList <int> >();
                ValuesWithoutNaN     = new Dictionary <int, IList>();
                break;
            }
        }
Esempio n. 2
0
 void FilterLogic_FilterChanged(object sender, EventArgs e)
 {
     //recalculate
     for (int i = 0; i < Columns; i++)
     {
         MissingValueIndicies.Remove(i);
         ValuesWithoutNaN.Remove(i);
     }
 }
Esempio n. 3
0
        public IList <int> GetMissingValueIndices(int columnIndex)
        {
            int index   = 0;
            var indices = new List <int>();

            if (MissingValueIndicies.ContainsKey(columnIndex))
            {
                return(MissingValueIndicies[columnIndex]);
            }

            if (preprocessingData.VariableHasType <double>(columnIndex))
            {
                foreach (var v in preprocessingData.GetValues <double>(columnIndex))
                {
                    if (double.IsNaN(v))
                    {
                        indices.Add(index);
                    }
                    index++;
                }
            }
            else if (preprocessingData.VariableHasType <string>(columnIndex))
            {
                foreach (var v in preprocessingData.GetValues <string>(columnIndex))
                {
                    if (string.IsNullOrEmpty(v))
                    {
                        indices.Add(index);
                    }
                    index++;
                }
            }
            else if (preprocessingData.VariableHasType <DateTime>(columnIndex))
            {
                foreach (var v in preprocessingData.GetValues <DateTime>(columnIndex))
                {
                    if (DateTime.MinValue.Equals(v))
                    {
                        indices.Add(index);
                    }
                    index++;
                }
            }
            else
            {
                throw new ArgumentException("column " + columnIndex + " contains a non supported type.");
            }

            MissingValueIndicies[columnIndex] = indices;
            return(MissingValueIndicies[columnIndex]);
        }
Esempio n. 4
0
 public IList <int> GetMissingValueIndices(int columnIndex)
 {
     if (!MissingValueIndicies.ContainsKey(columnIndex))
     {
         if (preprocessingData.VariableHasType <double>(columnIndex))
         {
             MissingValueIndicies[columnIndex] = GetMissingValueIndices <double>(columnIndex);
         }
         else if (preprocessingData.VariableHasType <string>(columnIndex))
         {
             MissingValueIndicies[columnIndex] = GetMissingValueIndices <string>(columnIndex);
         }
         else if (preprocessingData.VariableHasType <DateTime>(columnIndex))
         {
             MissingValueIndicies[columnIndex] = GetMissingValueIndices <DateTime>(columnIndex);
         }
         else
         {
             throw new ArgumentException("column " + columnIndex + " contains a non supported type.");
         }
     }
     return(MissingValueIndicies[columnIndex]);
 }