system.dataset.sort
This function is used in Python Scripting.
Description​
Takes a dataset and returns a sorted version of the dataset. The sort order is determined by a single column. This works on numeric, as well as alphanumeric columns. When sorting alphanumerically, contiguous numbers are treated as a single number: you may recognize this as a "natural sort".
Datasets are immutable, which means they cannot be directly modified once created. Instead, this scripting function returns a new dataset with some modification applied, which must be assigned to a variable to be used. See Altering a Dataset.
Alphanumeric Sort​
The table below represents an example of how alphanumeric values are sorted by the function. Raw Column Values represents the initial set of values in a column. The Sorted columns show how the function sorts in Ascending and Descending order.
Raw Column Values | Sorted - Ascending | Sorted - Descending |
---|---|---|
a1 | a1 | Z3 |
a22 | A1 | z3 |
Z3 | a4 | a77z99 |
z3 | a7z9 | a77z4 |
a4 | a22 | a22 |
a77z4 | a77z4 | a7z9 |
a77z99 | a77z99 | a4 |
a7z9 | Z3 | a1 |
A1 | z3 | A1 |
Natural Ordering​
The naturalOrdering parameter allows the function to sort using either a natural ordering, or an alphabetical ordering.
Raw Column Values | Natural Ordering - Ascending | Alphabetical Ordering - Ascending |
---|---|---|
a11 | a1 | a1 |
a2 | a2 | a11 |
a1 | a11 | a2 |
Client Permission Restrictions​
This scripting function has no Client Permission restrictions.
Syntax​
system.dataset.sort(dataset, keyColumn [, ascending, naturalOrdering])
Parameters​
Type | Parameter | Description |
---|---|---|
Dataset | dataset | The dataset to sort. |
Integer / String | keyColumn | The index of the column to sort on. |
Boolean | ascending | True for ascending order, False for descending order. If omitted, ascending order will be used. [optional] |
Boolean | naturalOrdering | True for natural ordering, False for alphabetical ordering. Ignored if the sort column is a directly sortable data type. If omitted, defaults to True (natural ordering). [optional] |
Returns​
Dataset - A new sorted dataset.
Scope​
Gateway, Vision Client, Perspective Session
Code Examples​
# This code will take the data in a Vision Table component, sort it based on the column with index 1,
# and then reinsert the sorted data into the same Table.
data = event.source.parent.getComponent('Table').data
newData = system.dataset.sort(data, 1)
event.source.parent.getComponent('Table').data = newData
# This code will create a dataset in scripting, and then sort it based on the name of one of the columns.
# It then inserts the sorted dataset into a table component.
# Initialize column headers and empty data list
headers = ["City", "Population", "Timezone", "GMTOffset"]
data = []
# Add rows, one by one, into data list
data.append(["New York", 8363710, "EST", -5])
data.append(["Los Angeles", 3833995, "PST", -8])
data.append(["Chicago", 2853114, "CST", -6])
data.append(["Houston", 2242193, "CST", -6])
data.append(["Phoenix", 1567924, "MST", -7])
# Convert headers and data lists into dataset
cities = system.dataset.toDataSet(headers, data)
# Sort the resulting dataset by city name
newData = system.dataset.sort(cities, "City")
# Write final dataset to a table
event.source.parent.getComponent('Table').data = newData