Libraries.Compute.Statistics.Transforms.ColumnSplitter Documentation

The ColumnSplitter class is a DataFrameTransform designed to make splitting individual columns easier by automating part of the process. Specifically, it contains a default implementation for splitting, which calls SplitValue on each cell in each row. Each cell then becomes a set of columns. By default, this class assumes and enforces that the number of items in the provided headers matches the number of items split for each cell. If this assumption is invalid, then this class must be sub-classed and the SplitValue action changed to provide undefined values in an array where appropriate to make this match. By default, if a particular cell is undefined, the row is ignored and undefined values are placed into the corresponding column. This can be changed by telling this class to ignore undefined values.

Example Code

use Libraries.Compute.Statistics.Transforms.ColumnSplitter

//This custom splitter class can then be passed to the Transform action in DataFrame
//and the rest will be handled automatically
class MySplitter is ColumnSplitter
    action SplitValue(text value) returns Array<text>
        Array<text> theSplit

        //do some special splitting here
        returns theSplit
    end

end

Inherits from: Libraries.Language.Object, Libraries.Compute.Statistics.DataFrameTransform

Actions Documentation

Compare(Libraries.Language.Object object)

This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.

Parameters

Return

integer: The Compare result, Smaller, Equal, or Larger.

Example

Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)

CreatesCopy()

This action tells us whether or not this transform makes a copy of the data or modifies it in place. Transforms that do not make a copy should override this action.

Return

boolean: True if this transform makes a copy.

Example

use Libraries.Compute.Statistics.DataFrame
use Libraries.Compute.Statistics.Transforms.ReverseTransform
use Libraries.System.File

//Load a comma separated file
DataFrame frame
frame:Load("Data.csv")

//reverse the data frame
ReverseTransform reverse
output reverse:CreatesCopy() // by default, this transform returns true.

Equals(Libraries.Language.Object object)

This action determines if two objects are equal based on their hash code values.

Parameters

Return

boolean: True if the hash codes are equal and false if they are not equal.

Example

use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)

GetHashCode()

This action gets the hash code for an object.

Return

integer: The integer hash code of the object.

Example

Object o
integer hash = o:GetHashCode()

GetHeaders()

Returns the header values that will be turned into columns.

Return

Libraries.Containers.Array:

IsIncludeUndefined()

Returns true if undefined values are processed and false if they are removed.

Return

boolean:

SetHeaders(Libraries.Containers.Array<text> headers)

Sets the header values that will be turned into columns

Parameters

SetIncludeUndefined(boolean includeUndefined)

Set to true if undefined values should be processed and false if they should be removed.

Parameters

  • boolean includeUndefined

SplitValue(text value)

This action returns an array of text values that splits the text value. The number of values in the array must match for each row, which means undefined values must be used appropriately in the array if necessary for a particular kind of split.

Parameters

  • text value

Return

Libraries.Containers.Array:

Transform(Libraries.Compute.Statistics.DataFrame frame)