Pronunciation: /wah-RECK-ee/ (Named with the hope of rescuing wrecked data in Japan)
日本のデータ分析者を長年苦しめてきた「和暦・西暦・全角半角・年省略」が入り乱れるカオスな日時データ.waReki は,そんな絶望的なベクトルデータを 「見た目はあるがままに,内部では完璧に計算・ソート可能にする」 というS3クラスを提供します.
- カオスフォーマットの完全維持: 入力された文字列の見た目を一切変更しません.
- 透過的な演算とソート: 見た目はバラバラでも,内部では
Date型として保持されるため,sort()やdiff()が完全に機能します. - 全角・半角のハイブリッド対応:
1989,1989,平成31年など,どのようなスタイルにも寛容です. - 「空気読め」機能(年の省略対応):
4月1日のように年が省略されている場合,実行環境から「空気を読んで」当年を内部で補完します. - 元年サポート:
令和元年を自動的に2019として解釈します. - 「年のみ」データの自動補完:
令和5,令和8年,2023など,月日がなく「年」の文字すら欠損しているデータもそのまま保持.内部的にはその年の1月1日として扱います.
本パッケージはCRANへの登録予定はありません.GitHubから直接インストールしてください.
# install.packages("remotes")
remotes::install_github("yetanothersu/waReki")身の回りの役所や企業で使っているデータを用意し,as.waReki() に通すだけです.
library(waReki)
# 官公庁や伝統的企業から送られてきた悪夢のようなデータ
nightmare_dates <- c(
"2024年4月1日", # 全角西暦+半角月日
"令和元年5月1日", # 和暦元年+全角月日
"4月2日", # 年が省略されている(空気を読んで当年として処理)
"令和5", # 和暦で月日なし,かつ「年」の表記なし
"1989/01/08", # スラッシュ区切りの西暦
"令和8年", # 和暦で月日なし,こちらは「年」の表記あり
"昭和64年1月7日" # 幻の昭和64年+全角半角ミックス
)
# waRekiクラスに変換
wr_dates <- as.waReki(nightmare_dates)
# 中身を確認すると,あるがままの見た目を完全維持!
print(wr_dates)
#> Chaos preserved waReki Date(s):
#> [1] "2024年4月1日" "令和元年5月1日" "4月2日"
#> [4] "令和5" "1989/01/08" "令和8年"
#> [7] "昭和64年1月7日"
# しかし,ソートすると……元の文字列のまま完璧な時系列順に並ぶ!
sort(wr_dates)
#> [1] "昭和64年1月7日" "1989/01/08" "令和元年5月1日"
#> [4] "令和5" "2024年4月1日" "4月2日"
#> [7] "令和8年"【警告】 エクセルの見た目の都合で年が省略された四半期データ(例: 4-6)を絶対に渡さないでください.時系列の連続性が不可逆的に破壊されるため,安全装置が作動します.
as.waReki(c("2000/1-3", "4-6"))
#> Error: FATAL ERROR: The timeline has been permanently shattered.
#> You attempted to parse quarterly data where years were omitted for visual convenience in Excel.
#> The context is lost forever. May your original file be backed up.MIT License