日付の列からN日後の列を作成(日付の加算)
2023年12月にリリースしたModeler Ver18.5で直接利用可能な関数が追加されました。該当バージョン以降を利用する方は手順eから確認ください。
この記事は以下のブログをもとに作成されています。詳しく解説されていますのでご覧ください。
1.想定される利用目的
・入会日からN日後を特定し特徴量作成の材料にする
・部品が設備に取り付けられてからN日後のチェックポイントを求め特徴量の材料にする
2.サンプルストリームのダウンロード
3.サンプルストリームの説明
Ver18.4以前の方法
b.[フィールド作成]ノードを編集します。「Modelerデータ加工Tips#08」で説明されている通り、まず1900年1月1日を基準日(設定変更可能)として、そこから起算日が何秒経過しているのか[datetime_in_seconds(フィールド)]で求めます。次に7日分の秒数を加えて、最後に[datetime_day(フィールド)]で日付に戻します。
c.月をまたぐ場合にはうるう月の配慮が必要です。
コード(CLEM式)は以下の通り。
d.月をまたぐ場合をスーパーノードでパラメータから利用できるようにします。
コード(CLEM式)は以下の通り。
[テーブル]を確認します。Nヶ月後は7ヶ月後で表示しています。
Ver18.5以降の方法
e.[フィールド作成]ノードを編集します。関数date_add_daysを利用します。
f.[フィールド作成]ノードを編集します。関数date_add_monthsを利用します。
g.[フィールド作成]ノードを編集します。関数date_add_yearsを利用します。
注意事項
うるう年かどうかは、西暦が4で割り切れる(ただし100では割り切れず、400では割り切れる)の条件を使うため割り算した余り(剰余)を求める関数remを利用しています。(「Modelerデータ加工Tips#08」より引用)
4.参考情報
スーパーノードとパラメーターを詳しく説明した記事
日付の加算減算
よく使う「日付と時間」関数
SPSS Modeler ノードリファレンス目次
SPSS Modeler 逆引きストリーム集(データ加工)