g_rshift(G;S;O;X;N)
Returns the value of the row that is a specified number of rows before (or after) the current row within a given group.
Function type
Vector only
Syntax
g_rshift(G;S;O;X;N)
t_rshift(X;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 |
X |
any | A column name |
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_rshift
returns the value ofX
for the row that isN
rows after this row in the same group as this row. - If
N
< 0,g_rshift
returns the value ofX
for the row that is |N
| rows before this row in the same group as this row.
The result is the same data type as X
.
X
are treated like any other value; i.e. they are
shifted.If no rows in a group have valid (non-N/A) values for X
, the result for
every row of the group is N/A.
Sample Usage
<base table="pub.doc.samples.ref.func.g_func_time_series_sample_usage"/> <willbe name="g_rshift_1" value="g_rshift(state;include;order;value;1)"/> <willbe name="g_rshift_2" value="g_rshift(state city;include;order;value;1)"/>
Example: Shifting within groups
This example shows how to perform a row shift using g_rshift(G;S;O;X;N)
across
multiple groups. The shift occurs for each zip code in the
zipcode
column. For simplicity, the table
is filtered down to only two zip codes.
<base table="pub.doc.weather.wunderground.observed_daily"/> <sel value="between(date;20160601;20160731)"/> <sel value="zipcode=01001 55957"/> <sort cols="zipcode,date"/> <colord cols="zipcode,date,meantempi"/> <willbe name="later_dates" value="g_rshift(zipcode;;;date;30)"/> <willbe name="later_dates_temp" value="g_rshift(zipcode;;;meantempi;30)"/> <willbe name="day_over_day_mean_temps" value="later_dates_temp-meantempi"/>
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.