lubridate

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"

他にもいろいろ便利な関数が入ってるぽいのでお試しあれ。