Libraries.Compute.Statistics.DataFrameColumn Documentation

This class represents a column on the system. Columns do not have a type themselves, but all subclasses can be made to have any arbitrary type, even custom ones. Columns by default can accept calculations, which send elements to the calculation of the appropriate type and conduct operations. DataFrame objects use the appropriate subclass of column automatically when reading in data frames from disk, based upon the first item in the spreadsheet. Note that in most cases, a user will not interact directly with this class. It is a parent class that encapsulates some common functionality, but typically one would pass a calculation or other operation to this class. The raw data of a column can also be manipulated directly, but type information must be checked through the appropriate actions (e.g., IsBooleanColumn). This is to balance the need to sometimes iterate through a column with the opposite need to manipulate its data directly.

Example Code

use Libraries.Compute.Statistics.DataFrame
use Libraries.Compute.Statistics.DataFrameColumn

//Load a comma separated file
DataFrame frame
frame:Load("Data.csv") 
DataFrameColumn col = frame:GetColumn(0)
output col:ToText()

Inherits from: Libraries.Containers.Support.Comparison, Libraries.Language.Object

Actions Documentation

Add(text value)

Columns may optionally add data from a text representation of that data. This can be in any arbitrary format determined by the column implementor. The Add action does the auto-conversion, while the set values are only accepted if that data type is allowed. The broad purpose is to allow this action to read in from an arbitrary text source and add it to the column.

Parameters

  • text value: The value to be converted to the proper type for this kind of column.

AddAsResult(Libraries.Language.Compile.Interpreter.Result value)

Columns may optionally add data from the Runtime system. In this case, columns may optionally choose to accept or reject a particular Libraries.Language.Compile.Interpreter.Result based on type. If the column is rejected, an undefined value is placed at the new position. The Result object must have a corresponding Libraries.Language.Compile.Symbol.Type.

Parameters

Calculate(Libraries.Compute.Statistics.DataFrameColumnCalculation calculation)

This action conducts a calculation on this column. The calculation begins by issuing a Start action. Then if it is an iterable action, sends each data point to the class for processing. If not, it is asked to conduct the entire operation at once on the full data set. Finally, it issues an end action.

Parameters

CalculateValueCountAsText()

This action returns a HashTable with AsText key values and counts of the items in the column.

Return

Libraries.Containers.HashTable: a HashTable with the count for each item in the column.

CanConvertToVector()

This action returns whether or not this column type can be converted to a Vector of numbers.

Return

boolean: true if this column type can be converted and false if it would throw an error on conversion.

Compare(boolean a, boolean b)

This action provides a way to compare two objects. The returned values from its sole action is an integer with the value of -1 (the left item is smaller), 0 (the items are equal) or 1 (the left item is larger).It can be used to override the standard comparison in Object for various applications (e.g., sorting). In the case of booleans, by default, false is considered less than true.

Parameters

  • boolean a
  • boolean b

Return

integer:

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)

Compare(number a, number b)

This action provides a way to compare two objects. The returned values from its sole action is an integer with the value of -1 (the left item is smaller), 0 (the items are equal) or 1 (the left item is larger).It can be used to override the standard comparison in Object for various applications (e.g., sorting).

Parameters

  • number a
  • number b

Return

integer:

Compare(integer a, integer b)

This action provides a way to compare two objects. The returned values from its sole action is an integer with the value of -1 (the left item is smaller), 0 (the items are equal) or 1 (the left item is larger).It can be used to override the standard comparison in Object for various applications (e.g., sorting).

Parameters

  • integer a
  • integer b

Return

integer:

Compare(Libraries.Language.Object a, Libraries.Language.Object b)

We can manually set a comparison, which is then passed to the default sorting routines if sorting occurs.

Parameters

Return

integer:

ConvertToBooleanColumn()

Regardless of the type of this column, the system will attempt to convert it to a BooleanColumn. This may cause an error to be thrown if the types are not compatible. Attrribute: Returns the newly converted column

Return

Libraries.Compute.Statistics.Columns.BooleanColumn:

ConvertToIntegerColumn()

Regardless of the type of this column, the system will attempt to convert it to an IntegerColumn. This may cause an error to be thrown if the types are not compatible. Attrribute: Returns the newly converted column

Return

Libraries.Compute.Statistics.Columns.IntegerColumn:

ConvertToNumberColumn()

Regardless of the type of this column, the system will attempt to convert it to a NumberColumn. This may cause an error to be thrown if the types are not compatible. Attrribute: Returns the newly converted column

Return

Libraries.Compute.Statistics.Columns.NumberColumn:

ConvertToTextArray()

This action converts to a text array from the column.

Return

Libraries.Containers.Array: a version of the column as a text array.

ConvertToTextColumn()

Regardless of the type of this column, the system will attempt to convert it to a TextColumn. This may cause an error to be thrown if the types are not compatible. Attrribute: Returns the newly converted column

Return

Libraries.Compute.Statistics.Columns.TextColumn:

ConvertToVector()

Some column types can be converted to a raw vector of numbers. All other column types throw an error if they cannot convert. This vector conversion stores numbers more tightly in primitive form, so no undefined values are allowed, but the system can process on the vector more quickly and efficiently.

Return

Libraries.Compute.Vector: the vector

Copy(integer rowStart, integer rowEnd, boolean sort, boolean unique)

This action does a deep copy of the row between the 0-indexed rowStart and rowEnd. The two extra parameters indicate whether to sort the column or whether to require that it be unique.

Parameters

  • integer rowStart: the first row to copy
  • integer rowEnd: the last row to copy
  • boolean sort: true if we sort the column
  • boolean unique: true if only those values that are unique are included in the copy

Return

Libraries.Compute.Statistics.DataFrameColumn:

Copy()

This action conducts a deep copy of the column.

Return

Libraries.Compute.Statistics.DataFrameColumn:

Copy(boolean sort, boolean unique)

This action conducts a deep copy of the column. The two parameters indicate whether to sort the column or whether to require that it be unique.

Parameters

  • boolean sort: true if we sort the column
  • boolean unique: true if only those values that are unique are included in the copy

Return

Libraries.Compute.Statistics.DataFrameColumn:

Copy(integer rowStart, integer rowEnd)

This action does a deep copy of the row between the 0-indexed rowStart and rowEnd.

Parameters

  • integer rowStart: the first row to copy
  • integer rowEnd: the last row to copy

Return

Libraries.Compute.Statistics.DataFrameColumn:

CopyEmpty()

This action copies the type of the data frame, but does not copy over its rows. The header name is retained.

Return

Libraries.Compute.Statistics.DataFrameColumn: the column of the appropriate type but without the data.

CopyToRow(Libraries.Compute.Statistics.DataFrameColumn column, integer to, integer from)

Copy from a row to copy from. Specifically, this grabs a value from the 'from' parameter inside the passed column value. It then places this row value into the to position inside of this column. This operation is destructive, meaning that the old value of the to position is destroyed. An error is thrown if the to value is invalid, below 0 or greater than the size. If the columns are not compatible, this throws an error. For example, if we try to set a number to a non-number column, this is an error.

Parameters

Example

use Libraries.Compute.Statistics.DataFrame
use Libraries.Compute.Statistics.DataFrameColumn
DataFrame frame
frame:Load("Data.csv")
DataFrameColumn col1 = frame:GetColumn(0)
DataFrameColumn col2 = frame:GetColumn(1)

//Assuming the types are compatible
col1:CopyToRow(col1, 1, 2)
output frame:ToText()

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)

GetAsBoolean(integer index)

Regardless of the type of the column, this action attempts to convert the item at the index to a boolean. Attrribute: Parameter index the item to be converted

Parameters

  • integer index

Return

boolean:

GetAsDateTime(integer index)

Regardless of the type of the column, this action attempts to convert the item at the index to a date time. Attrribute: Parameter index the item to be converted

Parameters

  • integer index

Return

Libraries.System.DateTime:

GetAsInteger(integer index)

Regardless of the type of the column, this action attempts to convert the item at the index to an integer. Attrribute: Parameter index the item to be converted

Parameters

  • integer index

Return

integer:

GetAsNumber(integer index)

Regardless of the type of the column, this action attempts to convert the item at the index to a number. Attrribute: Parameter index the item to be converted

Parameters

  • integer index

Return

number:

GetAsText(integer index)

Regardless of the type of the column, this action attempts to convert the item at the index to text. Attrribute: Parameter index the item to be converted

Parameters

  • integer index

Return

text:

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()

GetHeader()

This gets the header for this column.

Return

text:

GetSize()

This action returns the number of rows.

Return

integer: The size of the column (number of rows).

GetSortComparison()

We can get the comparison used by the sorting routines. By default, this is undefined. When undefined, alphabetical sorting is used.

Return

Libraries.Containers.Support.Comparison:

GetUndefinedSize()

This action returns the number of items in this column that are undefined.

Return

integer: the number of items that are not defined

GetUndefinedText()

This action returns a default text string for undefined values.

Return

text:

IsBooleanColumn()

This action detects whether this column ultimately stores booleans inside of it. This type of information is implementation dependent, as arbitrary columns can store these values however they see fit.

Return

boolean: true if this column stores booleans

IsDateTimeColumn()

This action detects whether this column ultimately stores dates/times inside of it. This type of information is implementation dependent, as arbitrary columns can store these values however they see fit.

Return

boolean: true if this column stores dates/times

IsIntegerColumn()

This action detects whether this column ultimately stores integers inside of it. This type of information is implementation dependent, as arbitrary columns can store these values however they see fit.

Return

boolean: true if this column stores integers

IsNumberColumn()

This action detects whether this column ultimately stores numbers inside of it. This type of information is implementation dependent, as arbitrary columns can store these numbers however they see fit.

Return

boolean: true if this column stores numbers

IsResultCheckable(Libraries.Language.Compile.Interpreter.Result value)

Returns whether or not the result is checkable inside sub-types.This action generally should not be used.

Parameters

Return

boolean: whether or not it is valid

IsTextColumn()

This action detects whether this column ultimately stores text inside of it. This type of information is implementation dependent, as arbitrary columns can store these values however they see fit.

Return

boolean: true if this column stores text

IsUndefined()

This action returns a boolean on if the column is undefined.

Return

boolean: true if the undefined size is equal to the size. Meaning every row is undefined.

IsUndefined(integer row)

This action detects whether a particular index is an undefined value in the column.

Parameters

  • integer row: The row of the column to check

Return

boolean: true if the row is undefined

Move(integer left, integer right)

This action moves the value in row left to the value in row right.

Parameters

  • integer left: the first index to swap
  • integer right: the second index to swap

ReplaceUndefined(text value)

If the column has undefined values, this action replaces all rows that have undefined with a value selected from text. If the text value is invalid for this column, the call is ignored.

Parameters

  • text value: The value to be replaced.

SendValueTo(integer index, Libraries.Compute.Statistics.DataFrameColumnCalculation calculation)

This action sends an individual data point to a calculation, typed appropriately by its subclass.

Parameters

SetAsBoolean(integer index, boolean value)

This action sets the index to a boolean if and only if this is a boolean column. Attrribute: Parameter index the item to be converted

Parameters

  • integer index
  • boolean value: the value to be placed in the column

SetAsInteger(integer index, integer value)

This action sets the index to an integer if and only if this is an integer column. Attrribute: Parameter index the item to be converted

Parameters

  • integer index
  • integer value: the value to be placed in the column

SetAsNumber(integer index, number value)

This action sets the index to a number if and only if this is a number column. Attrribute: Parameter index the item to be converted

Parameters

  • integer index
  • number value: the value to be placed in the column

SetAsResult(integer index, Libraries.Language.Compile.Interpreter.Result value)

This action sets the index to Libraries.Language.Compile.Interpreter.Result if and only if the column accepts values of this type. If it does not, undefined is placed at this index. Attrribute: Parameter index the item to be converted

Parameters

SetAsText(integer index, text value)

This action sets the index to text if and only if this is a text column. Attrribute: Parameter index the item to be converted

Parameters

  • integer index
  • text value: the value to be placed in the column

SetHeader(text header)

This sets the header for this column.

Parameters

  • text header

SetSize(integer size)

This action sets the size of the column to the parameter and then fills it with undefined values.

Parameters

  • integer size: the size of the column.

SetSortComparison(Libraries.Containers.Support.Comparison comparison)

We can manually set a comparison, which is then passed to the default sorting routines if sorting occurs.

Parameters

SplitByRows(Libraries.Containers.Array<integer> sortedArray)

This action takes an index sorted array and splits the column into two columns, returning copies. The first one contains all of the items from the indexes in the array. The second one is the items that were not in the array.

Parameters

Return

Libraries.Containers.Array:

Swap(integer left, integer right)

This action swaps two values in the column.

Parameters

  • integer left: the first index to swap
  • integer right: the second index to swap

ToText()

This is a convenience action that converts the entire column to a text format. This allows it to be sent to the console or a text editor for viewing.

Return

text: a text representation of the entire column