3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

タイムスタンプ列の差を計算する(SPSS Modeler データ加工逆引き1-9)

Last updated at Posted at 2022-08-05

タイムスタンプ列の差を計算する

image.png

1.想定される利用目的

タイムスタンプの差をHH:MM:SSで詳細に把握したい

2.サンプルストリームのダウンロード

3.サンプルストリームの説明

image.png

①入力するデータは以下の通りです。
image.png

時間の差の計算

②[フィールド作成]ノードを編集します。[datetime_in_seconds(フィールド)]でタイムスタンプをシリアル値に変換してから差をとり、[datetime_time()]でタイム型に変換します。

datetime_time(
datetime_in_seconds(E_TS) - datetime_in_seconds(S_TS)
)

image.png

式ビルダーの文字列関数を利用すると便利です。
image.png

プレビューを実行すると時間の差の計算結果[TIME_DIFF]が出来ています。
datetime_timeをつかうと日付部分は切り捨てられます。24時間以上の差が出ないことがわかっている場合は問題ありません。つまり、1行目と2行目のデータのように24時間以内の差であるようなデータ場合です。
しかし、3行目のように24時間を超える差があるデータがある場合、日付部分が無視されてしまいます。
image.png

タイムスタンプの差の計算

③[フィールド作成]ノードを編集します。[datetime_in_seconds(フィールド)]でタイムスタンプをシリアル値に変換してから差をとり、[datetime_timestamp()]でタイムスタンプ型に変換します。②との違いはdatetime_timeではなく、datetime_timestampを使うことです。

datetime_timestamp(
datetime_in_seconds(E_TS) - datetime_in_seconds(S_TS)
)

image.png

プレビューを実行するとタイムスタンプの差の計算結果[TS_DIFF]が出来ています。
datetime_timestampをつかうと1900-01-01を起点としたタイムスタンプデータになります。
3行目のように24時間を超える差があるデータがある場合でも3日分の差があることがわかります。
ただ、これは少し読み取りにくいかもしれません。
image.png

24時間を超える時間差の計算

③[フィールド作成]ノードを編集します。
([datetime_day(TS_DIFF)]-1)*24で24時間を超える日を時間に換算しています。そしてdatetime_hour(TS_DIFF)で時間を足しています。
分と秒はdatetime_minuteとdatetime_secondで取得しています。
時、分、秒はendstring(2,'0'><....)で囲むことで二桁に固定しています。桁をそろえておくと比較やソートが可能です。
時間が100時間を超える場合にはendstring(3,'00'><....)のような修正が必要です。
また、結果は文字列型になりますので、日時系の関数は使えなくなります。

endstring(2,'0'><to_string((datetime_day(TS_DIFF)-1)*24+datetime_hour(TS_DIFF))) >< ':' >< 
endstring(2,'0'><to_string(datetime_minute(TS_DIFF)))>< ':' >< 
endstring(2,'0'><to_string(datetime_second(TS_DIFF)))

プレビューを実行するとタイムスタンプの差の計算結果[TS_DIFF]が出来ています。
image.png

3日*24時間と07:41:17を足した79:41:17が出力されています。
image.png

4.参考情報

SPSS Modelerのタイムスタンプ関連clem関数をPythonで書き換える。 - Qiita

SPSS ModelerのCLEM式でよく使う「日付と時刻」関数 - Qiita

SPSS Modeler ノードリファレンス目次

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?