はじめに
みなさんこんにちは、自動化大好きまっきーです。今回は時系列データ処理に特に重要になるNode、Lag Columnを解説します。
KNIMEは基本列単位の処理ですが、このNodeは数少ない行の処理が可能なNodeです。
今回のテーマ ~Lag Column~
覚えてほしいこと
前日比など、変化量を求める時に使用できる
やりたいこと - 前日比を求める
残業時間の前日比を求める
前回働いた日の残業時間の差を出したいと思います。
今回は単純にするため、社員番号で勤務表のデータをフィルタリングしています。データはすでにソートされてあることが前提となります。
Lag Columnの使い方
KNIMEは基本列単位の処理ですが、このNodeは数少ない行の処理が可能なNodeです。 時系列データ処理や変化量を求める時に使用できます。
Sorterを事前に噛ませるのがおすすめです。
Workflow
その他のNodeがわからない方は、ちょっと一言にConfigureを載せておきました。
Workflowは下記からダウンロードできます。
Confirm
見ての通りですがLag Columnで、行を1行ずらすことができます。(もちろん今回は1行ですが任意の行数ずらすことができます)
Configure
設定はかなりシンプルです。
Step1 - Column to Lag - 行をずらすコラムの指定
行をずらすコラムを指定します。今回は数値でしたが、どんなデータ型でも構いません。
Step2 - ずらす幅・回数を指定
- Lag - ずらす回数。この回数だけ新しい列が作られます。
- Lag interval - ずらす幅。最初の行から数えて下に何行分ずらすかを指定します。
ちなみにカラム名には、(Lagの繰り返し回数)*(- Lag interval)の数字が入ります。
例)Lagが3、Lag Intervalが2の時は下図のようなカラム名になります。
Step3 - 欠損値へのオプションの指定
行をずらすので、最初の行と最後の行に欠損値が発生します。それらをどう処理するかを指定するオプションです。
- Skip initial incomplete rows - 最初の欠損値になっている行を削除します。つまり、先頭からLag * Lag interval分の行数が削除されます。
- Skip last incomplete rows - 最後の欠損値になっている行を削除します。今までなかった行ですが、ずらした分最後の溢れたがを削除されます。
わかりにくい場合はちょっと一言に実際の例を載せています。
ちょっと一言
その他のオプションについて
今回は2つのオプションがありました。そのオプションで何が起こるかの例を解説したいと思います。
データは適当に日付と数値のデータを作成しました。Lag ColumnのConfigureはした図の通りです。
オプションなしの場合
オプションなしの場合、データのはじめと終わりは下図のようになります。
- データのはじめ - ズレた分のデータが欠損値になる
- データの終わり - ズレた分、元データのColumnが欠損値になる
Skip initial incomplete rowsにチェックを入れた場合
- データのはじめ - ズレた分データが削除される
- データの終わり - ズレた分、元データのColumnが欠損値になる
Skip last incomplete rowsにチェックを入れた場合
- データのはじめ -ズレた分のデータが欠損値になる
- データの終わり - ズレた分、元データのColumnが欠損値になる
その他のNodeのConfigure
Lag Columnと関係ないNodeについて解説します。
1. Excel Reader
勤怠表を読み込みます。
2. Row Filter
簡易化のため、社員番号A003でフィルタリングをかけています。
4. Math Formula
変化量を実際に計算する部分です。
おわりに
お疲れ様でした。使い方は簡単ですよね。時系列データを扱う時便利だと思います。Sorterを噛ませることを忘れないようにしてくださいね。KNIMEってこういう列単位でない処理を噛ませたい時難しくなったりします。こんな時Nodeを知っていると便利ですね。何かリクエストや依頼等あればTwitterかお問い合わせいただければと思います。
ではまた!
一日1回押していただけると大変応援になります↓
参考リンク
- KNIME公式Node Pit(英語):
- KNIME Example Workflow(英語):
- KNIME workflow (日本語):
- KNIME Blog(英語):All you need is ... the Lag Column Node!
https://www.knime.com/blog/all-you-need-is-the-lag-column-node
- KNIME TV: