draw_(X;Y)
Returns a random number using a given seed that remains persistent (sticky) even after selections or links with expansion are used.
Syntax
draw_(X;Y)
Input
Argument | Type | Description |
---|---|---|
X |
integer | A scalar value
|
Y |
integer | A scalar value If
|
Return Value
A random number is drawn, with replacement, for each row. If Y
is 0, then
random decimal numbers between 0.0 and 1.0 are drawn; otherwise, random integers between 0
and Y
-1 are drawn.
If the current table has only one segment or is a tabulation, then Y
may
also be negative; in this case |Y
| must be greater than or equal to the
number of selected rows, and random integers between 0 and |Y
|-1 are drawn
without replacement.
If X
or Y
is N/A, an error is returned.
draw_(X;Y)
will work correctly even when selections or links with
expansion (expand="1"
) are used because the results are sticky. This means that the random number generated by the
function for each row will be the same after the expansion. When the
draw(X;Y)
function is used, a different random number will be generated
for each of the expanded rows.Example
The following example illustrates the difference between using draw_(X;Y)
and draw(X;Y)
example.
<base table="pub.demo.retail.item"/> <willbe name="sticky" value="draw_(8572;0)"/> <willbe name="not_sticky" value="draw(8572;0)"/> <sel value="2" expand="1"/>
The sticky
column uses the draw_(X;Y)
function, and the
not_sticky
column uses the draw(X;Y)
function.
When the <sel>
operation is run, the expanded rows in the
sticky
column have the same value. In the not_sticky
column, the values in the expanded rows are different.