2-16 OFFSETノード
1.ノードの目的
前後の行のデータを取得します。
@OFFSET関数をつかわずに前後のデータがとれます。かつSQLプッシュバックが可能です。
Modeler19.0からの機能です。
2.解説動画(60秒)
TBD
3.クイックスタート
3.1. 一行前のデータの取得
カテゴリーごとに前日の売上を取得します。
[OFFSET]ノードを編集します。
- グループ化のキーフィールドに
大分類を選びます - ソートでフィールドに
DATEを選び、昇順にします - Offset Feildsに
売上を選びます - Offsetを
-1にします。これが1行前という意味です。注意:@OFFSETとプラスとマイナスの考え方が反対です
応用:前日売上比
以下のようなフィールド追加ノードと組み合わせることで前日売上比を求めることができます。

従来の@OFFSETで取得する場合
まずソートノードで大分類とDATEでソートしてから、条件付きのフィールド追加ノードで@OFFSETを使う必要があります。この処理は@OFFSETがあるためSQLプッシュバックできません。
3.2. 一行後のデータの取得
装置IDごとに1日後の電力を取得します。
[OFFSET]ノードを編集します。
- グループ化のキーフィールドに
装置IDを選びます - ソートでフィールドに
稼働日数を選び、昇順にします - Offset Feildsに
電力を選びます - Offsetを
1にします。これが1行後という意味です。注意:@OFFSETとプラスとマイナスの考え方が反対です
応用:1日後の電力差
以下のようなフィールド追加ノードと組み合わせることで次の日の電力との差を求めることができます。

従来の@OFFSETで取得する場合
まずソートノードで装置IDと稼働日数でソートしてから、条件付きのフィールド追加ノードで@OFFSETを使う必要があります。この処理は@OFFSETがあるためSQLプッシュバックできません。
4.Tips
- 以前バージョンでのパレットの設定が残っていると、OLAPノードやOFFSETノードがノード・パレットに現れません。以下の「18.4」の部分を「_18.4」などに変更してください。
C:\Users\<USERNAME>\AppData\Roaming\IBM\SPSS\Modeler\18.4
- OLAPノードやOFFSETノードはSQLプッシュバック専用ノードです。RDBとの連携が必須です。RDBとの接続がないと「実行に失敗しました。 サポートされていない操作です」のエラーになります
以下のようにマニュアルに記述がありました。
オフセット・ノードを使用するために、ラグまたはリード関数が適用されるオフセット・フィールドを選択する。 各Offsetノードは一度に1つのフィールドを操作できる。 複数のフィールドに対してオフセットを生成する必要がある場合は、ストリームに複数のOffsetノードを追加する。
5.参考情報
サンプルストリーム
@OFFSETをつかったデータ加工①売上データ編ー前日売上比の計算、商品売上ランキング #SPSS - Qiita
@OFFSETをつかったデータ加工②センサーデータ編ー1時間前の電力差、累積加圧量 #SPSS - Qiita
ノードのヘルプ
オフセット・ノード - IBM Documentation
SPSS Modeler 逆引きストリーム集(データ加工)
SPSS Modeler ノードリファレンス目次














