ARRAYSLICE Function
Returns an array containing a slice of the input array, as determined by starting and ending index parameters.
Starting index parameter is required. A value of
0
indicates the first element of the array.Ending index parameter is optional.
Ending index value is 0-based and not inclusive.
Default value is empty, which indicates the end of the array.
Wrangle vs. SQL: This function is part of Wrangle, a proprietary data transformation language. Wrangle is not SQL. For more information, see Wrangle Language.
Basic Usage
Array literal reference example:
arrayslice(["A","B","C","D"],1,2)
Output: Returns the array: ["B"]
.
Column reference example:
arrayslice([myValues],2)
Output: Returns a slice of the arrays in the myValues
column, starting at the third value and extending to the end of the array.
Syntax and Arguments
arrayslice(array_ref,int_start_index,[int_end_index])
Argument | Required? | Data Type | Description |
---|---|---|---|
array_ref | Y | array or string | Name of Array column, Array literal, or function returning an Array to apply to the function |
int_start_index | Y | integer | 0-based index value of the first element in the Array to include in the slice. |
int_end_index | N | integer | 0-based index "soft" value of the last element in the Array to include in the slice. Listed value is not included. If no value is provided, the last element of the array is the end of the slice. |
For more information on syntax standards, see Language Documentation Syntax Notes.
array_ref
Name of the array column, array literal, or function returning an array whose element you want to locate.
Multiple columns and wildcards are not supported.
Usage Notes:
Required? | Data Type | Example Value |
---|---|---|
Yes | String (column reference or function) or array literal | myArray1 |
int_start_index
Index of the starting element of the source array that you wish to include in the slice.
A value of
0
captures the first element of the array.If this value is greater than the total number of elements in the source array, an empty array is returned as the slice.
Usage Notes:
Required? | Data Type | Example Value |
---|---|---|
Yes | Integer (whole number) | 4 |
int_end_index
Optional index of the ending element of the source array that you wish to include in the slice.
A value of
0
captures the first element of the array.The value indicated by this parameter is not included in the slice.
If the end index value is specified, it must be greater than or equal to the start index value.
If this value is greater than the total number of elements in the source array, then the slice ends at the final element of the array.
Usage Notes:
Required? | Data Type | Example Value |
---|---|---|
Yes | Integer (whole number) | 10 |
Examples
Tipp
For additional examples, see Common Tasks.
Example - Podium Race Finishes
This example illustrates how to generate an Array that is a slice of an another Array, based on index numbers. The elements of this Array can then be merged into a String value.
Functions:
Item | Description |
---|---|
ARRAYSLICE Function | Returns an array containing a slice of the input array, as determined by starting and ending index parameters. |
ARRAYMERGEELEMENTS Function | Merges the elements of an array in left to right order into a string. Values are optionally delimited by a provided delimiter. |
Source:
The following set of arrays contain results, in order, of a series of races. From this list, the goal is to extract a list of the podium finishers for each race as a single string.
RaceId | RaceResults |
---|---|
1 | ["racer3","racer5","racer2","racer1","racer6"] |
2 | ["racer6","racer4","racer2","racer1","racer3","racer5"] |
3 | ["racer4","racer3","racer5","racer2","racer6","racer1"] |
4 | ["racer1","racer2","racer3","racer5"] |
5 | ["racer5","racer2","racer4","racer6","racer3"] |
Transformation:
From the list of arrays, the first step is to gather the top-3 finishers from each race:
Transformation Name | |
---|---|
Parameter: Formula type | Single row formula |
Parameter: Formula | ARRAYSLICE(RaceResults, 0, 3) |
Parameter: New column name | 'arrPodium' |
The above captures the first three values of the RaceResults arrays into a new set of arrays.
The next step is to merge this new set of arrays into a single string:
Transformation Name | |
---|---|
Parameter: Formula type | Single row formula |
Parameter: Formula | ARRAYMERGEELEMENTS(arrPodium, ',') |
Parameter: New column name | 'strPodium' |
Results:
RaceId | RaceResults | arrPodium | strPodium |
---|---|---|---|
1 | ["racer3","racer5","racer2","racer1","racer6"] | ["racer3","racer5","racer2"] | racer3,racer5,racer2 |
2 | ["racer6","racer4","racer2","racer1","racer3","racer5"] | ["racer6","racer4","racer2"] | racer6,racer4,racer2 |
3 | ["racer4","racer3","racer5","racer2","racer6","racer1"] | ["racer4","racer3","racer5"] | racer4,racer3,racer5 |
4 | ["racer1","racer2","racer3","racer5"] | ["racer1","racer2","racer3"] | racer1,racer2,racer3 |
5 | ["racer5","racer2","racer4","racer6","racer3"] | ["racer5","racer2","racer4"] | racer5,racer2,racer4 |