auditR
半端な日付文字を日付型に変換する
通常は(データ処理にそれなりに日付を使う人にとっては当然に)日付は日付型で入力/保存するものだ。それはスプレッドシートであっても同じだ。
他者からデータをもらうと、日付の入力で文字列が使われていて戸惑うことがある。
例えば、月が全角、日が半角などで、しかも年が入っていないなど。
lubridateパッケージを使うとかなり柔軟に日付変換をしてくれるが、年月日の三要素が揃っていないと難しそうだ。
> ymd("2022年12年21日") #正しい日本語表記 [1] "2022-12-21"
また、和暦の表記が正しければ、zipanguパッケージで日付型に変換できる。
> zipangu::convert_jdate("令和4年12年21日") [1] "2022-12-21"
けしからん日付の場合
> c("1月15日", "2月3日") %>% #けしからん日付の例 str_c(year(today()),"年", .) |> #処理日の年をとりあえずつけてやる。 stringi::stri_trans_nfkc() |> #全角数字を半角数字に変換 ymd() #年月日(日付型)に変換 [1] "2022-01-15" "2022-02-03"
実際には、年が一つ前であるべきことも多いので、例えば年明け早々にデータ処理する際には注意が必要だ。
Last updated 2022-08-27 | auditR (c) N.Nawata