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
- Libraries.Language.Compile.Interpreter.Result: The Libraries.Language.Compile.Interpreter.Result to be converted to the proper type for this kind of column.
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
- Libraries.Language.Object: The object to compare to.
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
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
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
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
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
Copy()
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
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
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
- Libraries.Compute.Statistics.DataFrameColumn: the column we are grabbing from
- integer to: the row that will be destroyed in the current column
- integer from: the row that we are grabbing the value from
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
- Libraries.Language.Object: The to be compared.
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
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
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
- Libraries.Language.Compile.Interpreter.Result: The Libraries.Language.Compile.Interpreter.Result to check
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
- integer index: Which part of the column to send the calculation
- Libraries.Compute.Statistics.DataFrameColumnCalculation: the calculation to run on this part of the column
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