Difference between revisions of "Sequence"
(Character and spreadsheet sequences) |
|||
Line 51: | Line 51: | ||
:For these sequences, the start and stop must consist entirely of letters, and all letters must be all upper case or all lower case. | :For these sequences, the start and stop must consist entirely of letters, and all letters must be all upper case or all lower case. | ||
+ | |||
+ | |||
+ | =USER GUIDE= | ||
+ | Creates a list of numbers increasing or decreasing from '''start''' to '''end''' by increments (or decrements) of '''stepSize''', which is optional and defaults to 1. When the '''strict''' parameter is omitted or false, '''stepSize''' must be a positive number and the sequence will decrement by '''stepSize''' when '''end''' is less than '''start''', guaranteeing at least one element. When '''strict''' is specified as true, a positive '''stepSize''' increments and negative '''stepSize''' returns a decrementing sequence, possibly with zero elements if '''end''' would come before '''start'''. | ||
+ | |||
+ | The optional '''dateUnit''' parameter is used when creating a sequence of dates, with increments in units of Years (<tt>dateUnit:'Y'</tt>), Months (<tt>'M'</tt>), Days (<tt>'D'</tt> or omitted), Weekdays (<tt>'WD'</tt>), Hours (<tt>'h'</tt>), minutes (<tt>'m'</tt>) or seconds (<tt>'s'</tt>). | ||
+ | |||
+ | All parameters must be deterministic scalar numbers, not arrays. | ||
+ | |||
+ | You can also select this function using the '''Sequence''' option from the ''expr'' menu, as described in “Create a list with the Sequence option” on page 173. | ||
+ | |||
+ | The expression '''m .. n''' using the operator <tt>".."</tt> is equivalent to '''Sequence(m, n, 1)'''. | ||
+ | |||
+ | ==Library== | ||
+ | Array | ||
+ | |||
+ | ==Examples== | ||
+ | If <tt>end</tt> is greater than <tt>start</tt>, the sequence is increasing: | ||
+ | Sequence(1,5) → | ||
+ | |||
+ | {| | ||
+ | |- | ||
+ | ! scope="col"| List View | ||
+ | ! scope="col"| Expression View | ||
+ | |- | ||
+ | | IMAGE of List View | ||
+ | | <tt>[1,2,3,4,5]</tt> | ||
+ | |} | ||
+ | |||
+ | If <tt>start</tt> is greater than <tt>end</tt>, the sequence is decreasing: | ||
+ | Sequence(5,1) → [5, 4, 3, 2, 1] | ||
+ | Unless '''strict''' is true: | ||
+ | Sequence(5, 1, strict:true) → [] | ||
+ | Sequence(5, 1, -2, strict:true) → [5, 3, 1] | ||
+ | If <tt>start</tt> and <tt>end</tt> are not integers, and you omit <tt>stepSize</tt>, it rounds them: | ||
+ | Sequence(1.2, 4.8) → [1, 2, 3, 4, 5] | ||
+ | If you specify <tt>stepSize</tt>, it can create non-integer values: | ||
+ | Sequence(0.5, 2.5, 0.5) → [0.5, 1, 1.5, 2, 2.5] |
Revision as of 01:44, 30 July 2015
Sequence( Start, End, step )
Creates a list of numbers increasing or decreasing from Start to End by increments (or decrements) of Stepsize. Stepsize is optional and must be a positive number; if it is omitted, Analytica uses increments of 1. Start, End and Stepsize must be deterministic scalar numbers, not arrays.
Declaration
Examples
Strict sequences
Sequence expects the «step» to be positive (or omitted, in which case a step of 1 is assumed). A decreasing sequence is obtained by specifying a «start» less than «end». As a result of this convention, a sequence will always have at least one element.
(new to Analytica 4.2) There are cases where a strict sequence is desired, such that the sequence proceeds from «start» in increments of «step», according to the sign of «step». When «step» proceeds in the direction away from «end», then a zero-length sequence results. For example, in a For..Do loop, you may want zero iterations when «end» is less than «start». A strict sequence is obtained by specifying the optional parameter «strict» as true, e.g.
Sequence(x1,x2,strict:true)
When «strict» is specified as true, the «step» may be negative, and must be negative to obtain a decreasing sequence.
Date Sequences
new to Analytica 4.2
You can use Sequence to generate a sequence of dates between a given start and stop date, in increments such as months and years, by specifying the optional «dateUnit» parameter. Possible date units include: "Y" (years), "Q" (quarters), "M" (months), "WD" (weekdays), "D" (days), "h" (hours), "m" (minutes), "s" (seconds).
Sequence( MakeDate(2009,1,1), MakeDate(2010,12,31), 4, dateUnit:"M" ) → [ 1-Jan-2009, 1-May-2009, 1-Sep-2009, 1-Jan-2010, 1-May-2010, 1-Sep-2010 ]
Character Sequences
New to Analytica 4.4 or patch release 4.3.3
The «start» and «stop» characters may be single characters. In this case, a sequence of characters following ascii order is returned.
Sequence('T','f')
→ ['T','U','V','W','X','Y','Z','[','\',']','^','_','`','a','b','c','d','e','f']
Sequence('!','@')
→ ['!','""','#','$','%','&',,'(',')','*','+',',','-','.','/','0','1','2','3','4','5','6','7','8','9',':',';','<','=','>','?','@']
Spreadsheet Column Name Sequences
New to Analytica 4.4 or patch 4.3.3
When «start» and «stop» are multi-letter sequences, containing only letters, with all letters having the same upper-case or lower-case, then a spreadsheet column sequence is returned.
These sequences are letter sequences that go from 'A'..'Z', then from 'AA'..'AZ', 'BA'..'BZ', ... 'ZA'..'ZZ', then 'AAA'..'ZZZ', 'AAAA'..'ZZZZ', etc., up to six digits total.
Sequence('W','AF')
→ ['W','X','Y','Z','AA','AB','AC','AD','AE','AF']
- For these sequences, the start and stop must consist entirely of letters, and all letters must be all upper case or all lower case.
USER GUIDE
Creates a list of numbers increasing or decreasing from start to end by increments (or decrements) of stepSize, which is optional and defaults to 1. When the strict parameter is omitted or false, stepSize must be a positive number and the sequence will decrement by stepSize when end is less than start, guaranteeing at least one element. When strict is specified as true, a positive stepSize increments and negative stepSize returns a decrementing sequence, possibly with zero elements if end would come before start.
The optional dateUnit parameter is used when creating a sequence of dates, with increments in units of Years (dateUnit:'Y'), Months ('M'), Days ('D' or omitted), Weekdays ('WD'), Hours ('h'), minutes ('m') or seconds ('s').
All parameters must be deterministic scalar numbers, not arrays.
You can also select this function using the Sequence option from the expr menu, as described in “Create a list with the Sequence option” on page 173.
The expression m .. n using the operator ".." is equivalent to Sequence(m, n, 1).
Library
Array
Examples
If end is greater than start, the sequence is increasing:
Sequence(1,5) →
List View | Expression View |
---|---|
IMAGE of List View | [1,2,3,4,5] |
If start is greater than end, the sequence is decreasing:
Sequence(5,1) → [5, 4, 3, 2, 1]
Unless strict is true:
Sequence(5, 1, strict:true) → [] Sequence(5, 1, -2, strict:true) → [5, 3, 1]
If start and end are not integers, and you omit stepSize, it rounds them:
Sequence(1.2, 4.8) → [1, 2, 3, 4, 5]
If you specify stepSize, it can create non-integer values:
Sequence(0.5, 2.5, 0.5) → [0.5, 1, 1.5, 2, 2.5]
Enable comment auto-refresher