Interface AttributeColumnsMergeStrategiesController


  • public interface AttributeColumnsMergeStrategiesController
    This interface defines part of the Data Laboratory API basic actions. It contains methods for applying different basic attribute columns merge strategies.
    Author:
    Eduardo Ramos
    • Method Detail

      • joinWithSeparatorMerge

        Column joinWithSeparatorMerge​(Table table,
                                      Column[] columnsToMerge,
                                      Class newColumnType,
                                      String newColumnTitle,
                                      String separator)

        Joins various columns of any type into a new column using the given separator string (or null).

        If the specified column type is null, the new created column will have STRING AttributeType by default.

        Parameters:
        table - Table of the columns to merge
        columnsToMerge - Columns to merge
        newColumnType - Type for the new column. If null, STRING will be used by default
        newColumnTitle - Title for the new column
        separator - Separator to put between each value
        Returns:
        The new created column
      • mergeNumericColumnsToTimeInterval

        Column mergeNumericColumnsToTimeInterval​(Table table,
                                                 Column startColumn,
                                                 Column endColumn,
                                                 double defaultStart,
                                                 double defaultEnd)

        Merge 1 or 2 columns creating a time interval for each row. Values of the columns will be expected as numbers

        Only one of the 2 column could be null, and its corresponding start/end default will be used.

        Columns can be of any type. If not numeric, their values will be parsed.

        Default start and end values will be used when the columns don't have a value or it can't be parsed to a double.

        When start > end for any reason:
        • If both columns were provided: A infinite time interval will be set
        • If only one column was provided: The value for the provided column will be kept and the other will be infinite
        Parameters:
        table - Table of the columns, can't be null or wrong
        startColumn - Column to use as start value
        endColumn - Column to use as end value
        defaultStart - Default start value
        defaultEnd - Default end value
        Returns:
        Time interval column
      • mergeDateColumnsToTimeInterval

        Column mergeDateColumnsToTimeInterval​(Table table,
                                              Column startColumn,
                                              Column endColumn,
                                              SimpleDateFormat dateFormat,
                                              String defaultStartDate,
                                              String defaultEndDate)

        Merge 1 or 2 columns creating a time interval for each row. Values of the columns will be expected as dates in the given date format

        Only one of the 2 column could be null, and its corresponding start/end default will be used.

        Columns can be of any type.

        Default start and end values will be used when the columns don't have a value or it can't be parsed to a date. If a default value can't be parsed to a date, infinity will be used as default instead.

        When start > end for any reason:
        • If both columns were provided: A infinite time interval will be set
        • If only one column was provided: The value for the provided column will be kept and the other will be infinite
        Parameters:
        table - Table of the columns, can't be null or wrong
        startColumn - Column to use as start value
        endColumn - Column to use as end value
        dateFormat - Format for the dates, can't be null
        defaultStartDate - Default date to use as start if it can be parsed
        defaultEndDate - Default date to use as end if it can be parsed
        Returns:
        Time interval column
      • booleanLogicOperationsMerge

        Column booleanLogicOperationsMerge​(Table table,
                                           Column[] columnsToMerge,
                                           AttributeColumnsMergeStrategiesController.BooleanOperations[] booleanOperations,
                                           String newColumnTitle)

        Strategy to apply only to all boolean columns. Merges various columns into a new boolean column allowing to define each operation to apply between each pair of columns to merge.

        The length of the operations array must be the length of the columns array-1, or IllegalArgumentException will be thrown.

        Parameters:
        table - Table of the columns to merge
        columnsToMerge - Boolean columns to merge
        booleanOperations - Boolean operations to apply
        newColumnTitle - Title for the new column
        Returns:
        The new created column
      • averageNumberMerge

        Column averageNumberMerge​(Table table,
                                  Column[] columnsToMerge,
                                  String newColumnTitle)

        Merges any combination of number or number list columns, calculating the average of all not null values and puts the result of each row in a new column of BIGDECIMAL AttributeType.

        Parameters:
        table - Table of the columns to merge
        columnsToMerge - Number or number list columns
        newColumnTitle - Title for the new column
        Returns:
        The new created column
      • firstQuartileNumberMerge

        Column firstQuartileNumberMerge​(Table table,
                                        Column[] columnsToMerge,
                                        String newColumnTitle)

        Merges any combination of number or number list columns, calculating the first quartile (Q1) of all not null values and puts the result of each row in a new column of BIGDECIMAL AttributeType.

        Parameters:
        table - Table of the columns to merge
        columnsToMerge - Number or number list columns
        newColumnTitle - Title for the new column
        Returns:
        The new created column
      • medianNumberMerge

        Column medianNumberMerge​(Table table,
                                 Column[] columnsToMerge,
                                 String newColumnTitle)

        Merges any combination of number or number list columns, calculating the median of all not null values and puts the result of each row in a new column of BIGDECIMAL AttributeType.

        Parameters:
        table - Table of the columns to merge
        columnsToMerge - Number or number list columns
        newColumnTitle - Title for the new column
        Returns:
        The new created column
      • thirdQuartileNumberMerge

        Column thirdQuartileNumberMerge​(Table table,
                                        Column[] columnsToMerge,
                                        String newColumnTitle)

        Merges any combination of number or number list columns, calculating the third quartile (Q3) of all not null values and puts the result of each row in a new column of BIGDECIMAL AttributeType.

        Parameters:
        table - Table of the columns to merge
        columnsToMerge - Number or number list columns
        newColumnTitle - Title for the new column
        Returns:
        The new created column
      • interQuartileRangeNumberMerge

        Column interQuartileRangeNumberMerge​(Table table,
                                             Column[] columnsToMerge,
                                             String newColumnTitle)

        Merges any combination of number or number list columns, calculating the interquartile range (IQR) of all not null values and puts the result of each row in a new column of BIGDECIMAL AttributeType.

        Parameters:
        table - Table of the columns to merge
        columnsToMerge - Number or number list columns
        newColumnTitle - Title for the new column
        Returns:
        The new created column
      • sumNumbersMerge

        Column sumNumbersMerge​(Table table,
                               Column[] columnsToMerge,
                               String newColumnTitle)

        Merges any combination of number or number list columns, calculating the sum of all not null values and puts the result of each row in a new column of BIGDECIMAL AttributeType.

        Parameters:
        table - Table of the columns to merge
        columnsToMerge - Number or number list columns
        newColumnTitle - Title for the new column
        Returns:
        The new created column
      • minValueNumbersMerge

        Column minValueNumbersMerge​(Table table,
                                    Column[] columnsToMerge,
                                    String newColumnTitle)
        Merges any combination of number or number list columns, calculating the minimum value of all not null values and puts the result of each row in a new column of BIGDECIMAL AttributeType.
        Parameters:
        table - Table of the columns to merge
        columnsToMerge - Number or number list columns
        newColumnTitle - Title for the new column
        Returns:
        The new created column
      • maxValueNumbersMerge

        Column maxValueNumbersMerge​(Table table,
                                    Column[] columnsToMerge,
                                    String newColumnTitle)

        Merges any combination of number or number list columns, calculating the maximum value of all not null values and puts the result of each row in a new column of BIGDECIMAL AttributeType.

        Parameters:
        table - Table of the columns to merge
        columnsToMerge - Number or number list columns
        newColumnTitle - Title for the new column
        Returns:
        The new created column