lubridateパッケージのparse_date_time関数がうまくいかない?
よくわからないので調べる。下記の1つ目のケースがうまくいかない。
- 1日の前に半角スペースがなく1桁→うまく変換されない
- 1日の前に半角スペースがあり2桁→うまく変換される
- 1日の前に0があって2桁→うまく変換される
library(lubridate) parse_date_time("Apr 1, 2021", orders = "bdy", tz = "Asia/Tokyo") # 1桁:NG [1] "2021-01-20 JST" ------------------------------------------------------ // version 1.8.0 では問題なく変換されるようになった parse_date_time("Apr 1, 2021", orders = "bdy", tz = "Asia/Tokyo") # 1桁:NG [1] "2021-04-01 JST" ------------------------------------------------------ parse_date_time("Apr 1, 2021", orders = "bdy", tz = "Asia/Tokyo") # 2桁:OK [1] "2021-04-01 JST" parse_date_time("Apr 01, 2021", orders = "bdy", tz = "Asia/Tokyo") # 2桁:OK [1] "2021-04-01 JST"
mdy()
も似たような感じ・・・。
mdy("Apr 1, 2010") # 1桁:NG [1] "2010-01-20" ------------------------------------------------------ // version 1.8.0 では問題なく変換されるようになった mdy("Apr 1, 2010") [1] "2010-04-01" ------------------------------------------------------ mdy("Apr 1, 2010") # 2桁:OK [1] "2010-04-01" mdy("Apr 01, 2010") # 2桁:OK [1] "2010-04-01" mdy("April 1, 2010")# 1桁:NG [1] "2010-01-20" ------------------------------------------------------ // version 1.8.0 では問題なく変換されるようになった mdy("April 1, 2010") [1] "2010-04-01" ------------------------------------------------------ mdy("April 1, 2010") # 2桁:OK [1] "2010-04-01" mdy("April 01, 2010") # 2桁:OK [1] "2010-04-01"
スペースを無くすとうまく判定される模様。
mdy("Apr1,2010") # 1桁:OK [1] "2010-04-01" mdy("Apr01,2010") # 2桁:OK [1] "2010-04-01" mdy("April1,2010") # 1桁:OK [1] "2010-04-01" mdy("April01,2010") # 2桁:OK [1] "2010-04-01"