CopyIndex
CopyIndex(i, omitNull)
Makes a copy of the values in «i» and returns these as a list which can be assigned to a new index variable, global or local. «i» must be a list or 1-D array. In the case of a 1-D array, the values in the array itself are returned, essentially removing the index from the array (converting the array to a list, or equivalently, to an array with an implicit dimension). When the optional «omitNull» is true, then Null values are removed («omitNull» is new to Analytica 5.0).
CopyIndex is most often used to make a copy of an existing index for the purpose of defining a new index with the same index values. For example, if you need to represent a square matrix, you will need two indexes with the same length -- defining the second using CopyIndex allows the second index to automatically adapt if the first index changes.
When defining a local index using Index..Do, a CopyIndex is implicitly performed, so an explicit call to CopyIndex is unnecessary (unless you want to remove Nulls).
Examples
Suppose you want to create a matrix of distances between a set of origins and destinations, which are each the same set of cities:
Index Origins
- Definition:
['London', 'New York', 'Tokyo', 'Paris', 'Delhi', 'McMurdo']
Index Destinations
- Definition:
CopyIndex(Origins)
Variable Flight_times := Table(Origins, Destinations)
If you were to define Destinations
simply as Origins
, without using CopyIndex(), Destinations
would be indexed by Origins
, and the resulting table would have only one dimension index. By defining Destinations
with CopyIndex(), it becomes a separate index, so that the table has two dimensions.
Index AirportCodes
- Definition:
CopyIndex(Primary_Airport, omitNull:True) → ['LHR', 'JFK', 'HND', 'CDC', 'DEL']
but
History
The «omitNull» parameter was introduced in Analytica 5.0.
See Also
- Arrays and Indexes
- Local Indexes
- Index..Do
- Subset
- Array
- Set Functions like SetDifference and Unique, which can be used to remove duplicates.
- To edit a table -- copying a table
Enable comment auto-refresher