public static IEnumerable <string> GetVariableNamesForGrouping(IPreprocessingData preprocessingData, int maxDistinctValues = 20)
        {
            var variableNames = new List <string>();

            for (int i = 0; i < preprocessingData.Columns; ++i)
            {
                int distinctValues = Int32.MaxValue;
                if (preprocessingData.VariableHasType <double>(i))
                {
                    distinctValues = preprocessingData.GetValues <double>(i).GroupBy(x => x).Count();
                }
                else if (preprocessingData.VariableHasType <string>(i))
                {
                    distinctValues = preprocessingData.GetValues <string>(i).GroupBy(x => x).Count();
                }
                else if (preprocessingData.VariableHasType <DateTime>(i))
                {
                    distinctValues = preprocessingData.GetValues <DateTime>(i).GroupBy(x => x).Count();
                }

                if (distinctValues <= maxDistinctValues)
                {
                    variableNames.Add(preprocessingData.GetVariableName(i));
                }
            }
            return(variableNames);
        }
        public void SetFilter(bool[] remainingRows)
        {
            filteredData = (IPreprocessingData)originalData.Clone();
            filteredData.InTransaction(() => {
                var remainingIndices = Enumerable.Range(0, remainingRows.Length).Where(x => remainingRows[x]);

                foreach (var v in filteredData.VariableNames)
                {
                    var ci = filteredData.GetColumnIndex(v);
                    if (filteredData.VariableHasType <double>(ci))
                    {
                        var values         = filteredData.GetValues <double>(ci);
                        var filteredValues = remainingIndices.Select(x => values[x]).ToList();
                        filteredData.SetValues(ci, filteredValues);
                    }
                    else if (filteredData.VariableHasType <DateTime>(ci))
                    {
                        var values         = filteredData.GetValues <DateTime>(ci);
                        var filteredValues = remainingIndices.Select(x => values[x]).ToList();
                        filteredData.SetValues(ci, filteredValues);
                    }
                    else if (filteredData.VariableHasType <string>(ci))
                    {
                        var values         = filteredData.GetValues <string>(ci);
                        var filteredValues = remainingIndices.Select(x => values[x]).ToList();
                        filteredData.SetValues(ci, filteredValues);
                    }
                }
            });
            OnFilterChanged();
        }
        private List <IFilter> CreateFilters(string match, ComparisonOperation comparisonOperation, int columnIndex)
        {
            IPreprocessingData      preprocessingData = Content.FilterLogic.PreprocessingData;
            IStringConvertibleValue value;

            if (preprocessingData.VariableHasType <double>(columnIndex))
            {
                value = new DoubleValue();
            }
            else if (preprocessingData.VariableHasType <String>(columnIndex))
            {
                value = new StringValue();
            }
            else if (preprocessingData.VariableHasType <DateTime>(columnIndex))
            {
                value = new DateTimeValue();
            }
            else
            {
                throw new ArgumentException("unsupported type");
            }
            value.SetValue(match);
            var comparisonFilter = new ComparisonFilter(preprocessingData, GetConstraintOperation(comparisonOperation), value, true);

            comparisonFilter.ConstraintColumn = columnIndex;
            return(new List <Filter.IFilter>()
            {
                comparisonFilter
            });
        }
        private static ICheckedItemList <StringValue> CreateVariableItemList(IPreprocessingData preprocessingData)
        {
            ICheckedItemList <StringValue> itemList = new CheckedItemList <StringValue>();

            foreach (string name in preprocessingData.GetDoubleVariableNames())
            {
                var  n             = new StringValue(name);
                bool isInputTarget = preprocessingData.InputVariables.Contains(name) || preprocessingData.TargetVariable == name;
                itemList.Add(n, isInputTarget);
            }
            return(new ReadOnlyCheckedItemList <StringValue>(itemList));
        }
示例#5
0
 public PreprocessingTransformator(IPreprocessingData preprocessingData)
 {
     this.preprocessingData = (ITransactionalPreprocessingData)preprocessingData;
     originalColumns        = new Dictionary <string, IList <double> >();
     renamedColumns         = new Dictionary <string, string>();
 }
 private FilteredPreprocessingData(FilteredPreprocessingData original, Cloner cloner)
     : base(original, cloner)
 {
     originalData = original.originalData;
     filteredData = original.filteredData;
 }
 public void ResetFilter()
 {
     filteredData = null;
     OnFilterChanged();
 }
 public FilteredPreprocessingData(IPreprocessingData preprocessingData)
     : base()
 {
     originalData = preprocessingData;
     filteredData = null;
 }
示例#9
0
 public ComparisonFilter(IPreprocessingData constrainedValue, ConstraintOperation constraintOperation, object constraintData, bool active)
   : base(constrainedValue, constraintOperation, constraintData, active) {
 }
 public PreprocessingTransformator(IPreprocessingData preprocessingData) {
   this.preprocessingData = (ITransactionalPreprocessingData)preprocessingData;
   originalColumns = new Dictionary<string, IList<double>>();
   renamedColumns = new Dictionary<string, string>();
 }
 public TransformationContent(IPreprocessingData data, FilterLogic filterLogic)
 {
     Data = data;
     CheckedTransformationList = new CheckedItemList <ITransformation>();
     FilterLogic = filterLogic;
 }
示例#12
0
 public ComparisonFilter(IPreprocessingData constrainedValue, ConstraintOperation constraintOperation, object constraintData, bool active)
     : base(constrainedValue, constraintOperation, constraintData, active)
 {
 }
示例#13
0
 public TransformationContent(IPreprocessingData data, FilterLogic filterLogic) {
   Data = data;
   CheckedTransformationList = new CheckedItemList<ITransformation>();
   FilterLogic = filterLogic;
 }