デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - 時系列データ処理に必須!? 変化量を求める ~Lag Column~

f:id:makkynm:20210715222411p:plain

 

 

はじめに

みなさんこんにちは、自動化大好きまっきーです。今回は時系列データ処理に特に重要になるNode、Lag Columnを解説します。

KNIMEは基本列単位の処理ですが、このNodeは数少ない行の処理が可能なNodeです。 

 

 今回のテーマ ~Lag Column~

f:id:makkynm:20210715212436p:plain

 今回のテーマ ~Lag Column~

 

覚えてほしいこと

前日比など、変化量を求める時に使用できる

 

やりたいこと - 前日比を求める

残業時間の前日比を求める

前回働いた日の残業時間の差を出したいと思います。

今回は単純にするため、社員番号で勤務表のデータをフィルタリングしています。データはすでにソートされてあることが前提となります。

f:id:makkynm:20210715214411p:plain

やりたいこと - 前日比を求める

 

 

Lag Columnの使い方

KNIMEは基本列単位の処理ですが、このNodeは数少ない行の処理が可能なNodeです。 時系列データ処理や変化量を求める時に使用できます。

Sorterを事前に噛ませるのがおすすめです。

Workflow

その他のNodeがわからない方は、ちょっと一言にConfigureを載せておきました。

f:id:makkynm:20210715212436p:plain

Workflow - Lag Column

Workflowは下記からダウンロードできます。

Lag Column - 行ずらし – KNIME Hub

 

Confirm 

見ての通りですがLag Columnで、行を1行ずらすことができます。(もちろん今回は1行ですが任意の行数ずらすことができます)

f:id:makkynm:20210715214719p:plain

Confirm - Lag Column

 

Configure

設定はかなりシンプルです。

f:id:makkynm:20210715214742p:plain

Configure - Lag Column
Step1 - Column to Lag - 行をずらすコラムの指定

行をずらすコラムを指定します。今回は数値でしたが、どんなデータ型でも構いません。

 

Step2 - ずらす幅・回数を指定
  • Lag - ずらす回数。この回数だけ新しい列が作られます。
  • Lag interval - ずらす幅。最初の行から数えて下に何行分ずらすかを指定します。

ちなみにカラム名には、(Lagの繰り返し回数)*(- Lag interval)の数字が入ります。

 

例)Lagが3、Lag Intervalが2の時は下図のようなカラム名になります。

f:id:makkynm:20210715220506p:plain

カラム名

Step3 - 欠損値へのオプションの指定

行をずらすので、最初の行と最後の行に欠損値が発生します。それらをどう処理するかを指定するオプションです。

  • Skip initial incomplete rows - 最初の欠損値になっている行を削除します。つまり、先頭からLag * Lag interval分の行数が削除されます。
  • Skip last incomplete rows - 最後の欠損値になっている行を削除します。今までなかった行ですが、ずらした分最後の溢れたがを削除されます。

わかりにくい場合はちょっと一言に実際の例を載せています。

 

 ちょっと一言

その他のオプションについて

今回は2つのオプションがありました。そのオプションで何が起こるかの例を解説したいと思います。

f:id:makkynm:20210715215439p:plain

その他のオプションについて

 

データは適当に日付と数値のデータを作成しました。Lag ColumnのConfigureはした図の通りです。

f:id:makkynm:20210715221102p:plain

Configure - Lag Column

 

オプションなしの場合

オプションなしの場合、データのはじめと終わりは下図のようになります。

  • データのはじめ - ズレた分のデータが欠損値になる
  • データの終わり - ズレた分、元データのColumnが欠損値になる

f:id:makkynm:20210715221157p:plain

データの先頭行

f:id:makkynm:20210715221346p:plain

データの最終行

 

 

Skip initial incomplete rowsにチェックを入れた場合
  • データのはじめ - ズレた分データが削除される
  • データの終わり - ズレた分、元データのColumnが欠損値になる

    f:id:makkynm:20210715221443p:plain

    データの先頭が削除される

    f:id:makkynm:20210715221527p:plain

    データの最終行
Skip last incomplete rowsにチェックを入れた場合
  • データのはじめ -ズレた分のデータが欠損値になる
  • データの終わり - ズレた分、元データのColumnが欠損値になる

f:id:makkynm:20210715221157p:plain

データの先頭行

f:id:makkynm:20210715221700p:plain

データの最終行

 

その他のNodeのConfigure

Lag Columnと関係ないNodeについて解説します。

1. Excel Reader

勤怠表を読み込みます。

f:id:makkynm:20210715215024p:plain

Configure - Excel Reader

 

degitalization.hatenablog.jp

 

2. Row Filter

簡易化のため、社員番号A003でフィルタリングをかけています。 

f:id:makkynm:20210715215203p:plain

Configure - Row filter

degitalization.hatenablog.jp

4. Math Formula

変化量を実際に計算する部分です。 

f:id:makkynm:20210715215258p:plain

Configure - Math Formula

degitalization.hatenablog.jp

 

おわりに

お疲れ様でした。使い方は簡単ですよね。時系列データを扱う時便利だと思います。Sorterを噛ませることを忘れないようにしてくださいね。KNIMEってこういう列単位でない処理を噛ませたい時難しくなったりします。こんな時Nodeを知っていると便利ですね。何かリクエストや依頼等あればTwitterかお問い合わせいただければと思います。

ではまた!

 

一日1回押していただけると大変応援になります↓ 

にほんブログ村 IT技術ブログへ

 

 

参考リンク