Rで時間のデータを扱う時DateやらPOSIXltやらに変換して操作するわけですが、変換の際いちいちformatを指定する必要がありめんどい。
たとえば8ケタの数値文字列で入っているデータをDateに変換する時、以下の場合エラーになる。
as.Date("19810322")
## Error: character string is not in a standard unambiguous format
この場合は、formatを指定してやるとうまくいく。
as.Date("19810322", format = "%Y%m%d")
## [1] "1981-03-22"
しかしできればこの辺の変換はもっと楽にやりたい。
俺はプログラマじゃないしコードの匂いなんてさせたくない!
そんなあなたにlubridateパッケージ。
library(lubridate)
ymd("19810322")
## [1] "1981-03-22 UTC"
ラク!超ラク!たった3文字!%とか打たなくていい!
dmy("22031981")
## [1] "1981-03-22 UTC"
日付だけじゃなく時刻のデータももちろん扱える。
ただ、書式は区切り文字が全てハイフンの場合のみ通る。
ymd_hms("1981-03-22-03-00-01")
## [1] "1981-03-22 03:00:01 UTC"
デフォルトだとtimezoneがUTCなので日本時間のJSTに変えたい場合はtz=“Japan"を指定する。
ymd_hms("1981-03-22-03-00-01", tz = "Japan")
## [1] "1981-03-22 03:00:01 JST"
他にもいろいろ便利な関数が入ってるぽいのでお試しあれ。