g_rshifti(G;S;O;N)
Returns a zero-indexed row number that is a specified number of rows before (or after) the current row within a given group (rather than the column value).
Function type
Vector only
Syntax
g_rshifti(G;S;O;N)
t_rshifti(N)
Input
Argument | Type | Description |
---|---|---|
G |
any | A space- or comma-separated list of column names Rows are in the same group
if their values for all of the columns listed in If If any of the columns listed in |
S |
integer | The name of a column in which every row evaluates to a 1 or 0, which determines
whether or not that row is selected to be included in the calculation If
If any of the values in
|
O |
integer | A space- or comma-separated list of column names that
determine the row order within a particular group If
If any of the values in |
N |
|
The number of rows to shift within the group |
Return Value
G
and ordered by O
(and for those rows where S
=1, if specified):- If
N
>= 0,g_rshifti
returns the zero-indexed row that isN
rows after this row in the same group as this row. - If
N
< 0,g_rshifti
returns the zero-indexed row that is |N
| rows before this row in the same group as this row.
Sample Usage
<base table="pub.doc.samples.ref.func.g_func_time_series_sample_usage"/> <willbe name="g_rshifti_1" value="g_rshifti(state;include;order;1)"/> <willbe name="g_rshifti_2" value="g_rshifti(state;include;order;-1)"/>
Example: Difference between g_rshift
and
g_rshifti
This example shows the difference between the g_rshift
and g_rshifti
functions.
<table cols="state,sel">TX 1 TX 1 TX 1 TX 1 TX 0 TX 0 TX 0 TX 0 TX 0 TN 1 TN 1 TN 1 PA 1 PA 1 PA 1 PA 0 PA 0 DE 0 DE 0 DE 0 </table> <willbe name="i" value="i_()"/> <willbe name="g_rshift" value="g_rshift(state;sel;;i;0)-1" format="type:num;width:2"/> <willbe name="g_rshifti" value="g_rshifti(state;sel;;0)" format="type:num;width:2"/>
Additional Information
- The
t_
version of this function defaults theG
argument and omits theS
argument. The default forG
is set at table load time based on the organization of the table.